OpenShift Build Operations: Difference between revisions
Line 31: | Line 31: | ||
--strategy=source \ | --strategy=source \ | ||
--image-stream=eap7 \ | --image-stream=eap7 \ | ||
[--name= | [--name=''app-name''] \ | ||
https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git | https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git | ||
Revision as of 23:09, 6 December 2017
Internal
Overview
Build and Deploy a JEE Application
Create a Build Configuration
oc new-build is the preferred way to create a new build configuration. oc new-app also creates a build configuration, and for an example of how to do so, see Build and Deploy a JEE Application. The following considerations apply to all types of builds (source, docker and pipeline) that can be created with oc new-build:
- --dry-run can be used to visualize the results of the operation, without modifying anything on the master server.
Source Build
Before declaring the build configuration, define an image stream that will provide the builder image, as shown here:
Then create the build configuration:
oc new-build \ [--dry-run] \ --strategy=source \ --image-stream=eap7 \ [--name=app-name] \ https://gogs-cicd.apps.openshift.novaordis.io/gogs/novaordis-session-servlet.git
Notes:
- The command shallow clones the specified repository locally, so if the repository certificate is self-signed, it will complain. SSL certificate verification can be turned off as described here: turn off SSL server certificate verification.
- If the application name is not specified with --name, it will default to current project name.
Docker Build
Pipeline Build
oc new-build creates source builds by default (--binary is by default 'false').
oc new-build --binary=false ...
Create a build configuration based on source code in the current git repository. The --binary=false says the build should expect source.
Binary Build
oc new-build --binary=true --name=some-binary -i=redhat-openjdk18-openshift
--binary=true makes sure that restrictions associated with binary builds are enforced. It says that instead of expecting a source URL, set the build to expect binary contents. Will disable triggers.
Source Clone Secret
oc set build-secret --source bc/<build-configuration-name'> <secret-name>
Then the secret can be added to the build configuration:
oc new-build .../example.git --build-secret <secret-name>
Set Maximum Duration
spec: completionDeadlineSeconds: 1800
Manually Start the Build Process
oc start-build <buildConfig-name>
The name of a previous build can be specified - it will be used as a starting point.
Options:
- --from-file
- --from-dir
- --from-repo
- --from-archive
View Builds for Project
oc get builds
NAME TYPE FROM STATUS STARTED DURATION bookstore-1 Source Git@ad0abda Failed (AssembleFailed) About an hour ago 2m43s bookstore-2 Source Git@ad0abda Failed (AssembleFailed) 12 minutes ago 2m16s
Each build has an associated build pod, whose names can be obtained with:
oc get pods
NAME READY STATUS RESTARTS AGE bookstore-1-build 0/1 Error 0 57m bookstore-2-build 0/1 Error 0 13m
View Build Logs
View build logs associated with a build object:
oc logs [-f] builds/<build-name>
If -f|--follow is used, it specifies that the logs should be streamed.
Viewing the build logs in this manner is similar to following the build pod's logs.
Stop a Build in Progress
oc cancel-build
Delete a Build
oc delete build/<build-name>
where the build name is among those returned by oc get builds.