📅  最后修改于: 2020-10-31 13:53:08             🧑  作者: Mango
在OpenShift中,我们有多种自动化构建管道的方法。为此,我们需要创建一个BuildConfig资源来描述构建流程。可以将BuildConfig中的流程与Jenkins作业定义中的作业定义进行比较。在创建构建流程时,我们必须选择构建策略。
在OpenShift中,BuildConfig是一个Rest对象,用于连接到API,然后创建一个新实例。
kind: "BuildConfig"
apiVersion: "v1"
metadata:
name: ""
spec:
runPolicy: "Serial"
triggers:
-
type: "GitHub"
github:
secret: ""
- type: "Generic"
generic:
secret: "secret101"
-
type: "ImageChange"
source:
type: "
在OpenShift中,有四种类型的构建策略。
允许从源代码开始创建容器映像。在此流程中,实际代码首先在容器中下载,然后在容器中进行编译。编译后的代码将部署在同一个容器中,并且映像是根据该代码构建的。
strategy:
type: "Source"
sourceStrategy:
from:
kind: "ImageStreamTag"
name: "builder-image:latest"
forcePull: true
有多种策略策略。
在此流程中,OpenShift使用Dockerfile构建映像,然后将创建的映像上传到Docker注册表。
strategy:
type: Docker
dockerStrategy:
from:
kind: "ImageStreamTag"
name: "ubuntu:latest"
Docker文件选项可在多个位置使用,从文件路径开始,无缓存,并强制拉取。
这是一种不同的构建策略,其中不存在使构建的输出成为图像的强制性。可以将其与詹金斯的自由风格工作进行比较。这样,我们可以创建Jar,rpm和其他软件包。
strategy:
type: "Custom"
customStrategy:
from:
kind: "DockerImage"
name: "openshift/sti-image-builder"
它包含多种构建策略。
管道策略用于创建自定义构建管道。这基本上是用于在管道中实现工作流。此构建流程使用通过Groovy DSL语言的自定义构建管道流程。 OpenShift将在Jenkins中创建管道作业并执行。此管道流也可以在Jenkins中使用。在此策略中,我们使用Jenkinsfile并将其附加在buildconfig定义中。
Strategy:
type: "JenkinsPipeline"
jenkinsPipelineStrategy:
jenkinsfile: "node('agent') {\nstage 'build'\nopenshiftBuild(buildConfig: 'OpenShift-build', showBuildLogs: 'true')\nstage 'deploy'\nopenshiftDeploy(deploymentConfig: 'backend')\n}"
使用构建管道
kind: "BuildConfig"
apiVersion: "v1"
metadata:
name: "test-pipeline"
spec:
source:
type: "Git"
git:
uri: "https://github.com/openshift/openshift-hello-world"
strategy:
type: "JenkinsPipeline"
jenkinsPipelineStrategy:
jenkinsfilePath: