- OpenShift 教程
- OpenShift - 首页
- OpenShift - 概述
- OpenShift - 类型
- OpenShift - 架构
- OpenShift - 环境设置
- OpenShift - 基本概念
- OpenShift - 入门
- OpenShift - 构建自动化
- OpenShift - CLI
- OpenShift - CLI 操作
- OpenShift - 集群
- OpenShift - 应用伸缩
- OpenShift - 管理
- OpenShift - Docker 和 Kubernetes
- OpenShift - 安全
- OpenShift 有用资源
- OpenShift - 快速指南
- OpenShift - 有用资源
- OpenShift - 讨论
OpenShift - 构建自动化
在 OpenShift 中,我们有多种方法可以自动化构建管道。为此,我们需要创建一个 BuildConfig 资源来描述构建流程。BuildConfig 中的流程可以与 Jenkins 作业定义中的作业定义进行比较。在创建构建流程时,我们必须选择构建策略。
BuildConfig 文件
在 OpenShift 中,BuildConfig 是一个用于连接 API 并创建新实例的 REST 对象。
kind: "BuildConfig" apiVersion: "v1" metadata: name: "<Name of build config file>" spec: runPolicy: "Serial" triggers: - type: "GitHub" github: secret: "<Secrete file name>" - type: "Generic" generic: secret: "secret101" - type: "ImageChange" source: type: "<Source of code>" git: uri: "https://github.com/openshift/openshift-hello-world" dockerfile: "FROM openshift/openshift-22-centos7\nUSER example" strategy: type: "Source" sourceStrategy: from: kind: "ImageStreamTag" name: "openshift-20-centos7:latest" output: to: kind: "ImageStreamTag" name: "origin-openshift-sample:latest" postCommit: script: "bundle exec rake test"
在 OpenShift 中,有四种类型的构建策略。
- 源到镜像策略
- Docker 策略
- 自定义策略
- 流水线策略
源到镜像策略
允许从源代码开始创建容器镜像。在此流程中,实际代码首先下载到容器中,然后在其中进行编译。编译后的代码部署到同一容器中,并从该代码构建镜像。
strategy: type: "Source" sourceStrategy: from: kind: "ImageStreamTag" name: "builder-image:latest" forcePull: true
有多种策略策略。
- 强制拉取
- 增量构建
- 外部构建
Docker 策略
在此流程中,OpenShift 使用 Dockerfile 构建镜像,然后将创建的镜像上传到 Docker 镜像仓库。
strategy: type: Docker dockerStrategy: from: kind: "ImageStreamTag" name: "ubuntu:latest"
Docker 文件选项可以在多个位置使用,从文件路径、无缓存和强制拉取开始。
- 从镜像
- Dockerfile 路径
- 无缓存
- 强制拉取
自定义策略
这是不同类型的构建策略之一,其中构建的输出不必是镜像。它可以与 Jenkins 的自由风格作业进行比较。通过此,我们可以创建 Jar、rpm 和其他软件包。
strategy: type: "Custom" customStrategy: from: kind: "DockerImage" name: "openshift/sti-image-builder"
它包含多个构建策略。
- 公开 Docker 套接字
- 密钥
- 强制拉取
流水线策略
流水线策略用于创建自定义构建管道。这基本上用于在管道中实现工作流。此构建流程使用 Groovy DSL 语言使用自定义构建管道流程。OpenShift 将在 Jenkins 中创建一个管道作业并执行它。此管道流程也可以在 Jenkins 中使用。在此策略中,我们使用 Jenkinsfile 并将其附加到构建配置定义中。
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: <file path repository>
广告