5.3. Custom 构建
采用自定义构建策略时,开发人员可以定义负责整个构建过程的特定构建器镜像。通过利用自己的构建器镜像,可以自定义构建流程。
自定义构建器镜像是嵌入了构建过程逻辑的普通容器镜像,例如用于构建 RPM 或基本镜像的逻辑。
自定义构建以级别很高的特权运行,默认情况下不可供用户使用。只有可赋予集群管理权限的用户才应被授予运行自定义构建的权限。
5.3.1. 使用 FROM 镜像进行自定义构建
您可以使用 customStrategy.from
部分来指示要用于自定义构建的镜像。
流程
设置
customStrategy.from
部分:strategy: customStrategy: from: kind: "DockerImage" name: "openshift/sti-image-builder"
5.3.2. 在自定义构建中使用 secret
除了可以添加到所有构建类型的源和镜像的 secret 之外,自定义策略还允许向构建器 Pod 添加任意 secret 列表。
5.3.3. 使用环境变量进行自定义构建
要将环境变量提供给自定义构建过程使用,您可以在构建配置的 customStrategy
定义中添加环境变量。
这里定义的环境变量将传递给运行自定义构建的 Pod。
流程
定义在构建期间使用的自定义 HTTP 代理:
customStrategy: ... env: - name: "HTTP_PROXY" value: "http://myproxy.net:5187/"
要管理构建配置中定义的环境变量,请输入以下命令:
$ oc set env <enter_variables>
5.3.4. 使用自定义构建器镜像
OpenShift Container Platform 的自定义构建策略允许您定义负责整个构建过程的特定构建器镜像。当您需要构建来生成单独的工件,如软件包、JAR、WAR、可安装的 ZIP 或基础镜像时,请使用自定义构建器镜像。
自定义构建器镜像是嵌入构建过程逻辑的普通容器镜像,用于构建工件,如 RPM 或基础容器镜像。
另外,自定义构建器允许实施任何扩展构建过程,如运行单元或集成测试的 CI/CD 流。
5.3.4.1. 自定义构建器镜像
在调用时,自定义构建器镜像将接收以下环境变量以及继续进行构建所需要的信息:
变量名称 | 描述 |
---|---|
|
|
| 包含要构建的源代码的 Git 存储库的 URL。 |
|
使用与 |
| 指定要在构建时使用的 Git 存储库的子目录。只有定义后才出现。 |
| 要构建的 Git 引用。 |
| 创建此构建对象的 OpenShift Container Platform master 的版本。 |
| 镜像要推送到的容器镜像 registry。 |
| 所构建镜像的容器镜像标签名称。 |
|
用于运行 |
5.3.4.2. 自定义构建器工作流
虽然自定义构建器镜像作者在定义构建过程时具有很大的灵活性,但构建器镜像仍必须遵循如下必要的步骤,才能在 OpenShift Container Platform 内无缝运行构建:
-
Build
对象定义包含有关构建的输入参数的所有必要信息。 - 运行构建过程。
- 如果构建生成了镜像,则将其推送到构建的输出位置(若已定义)。可通过环境变量传递其他输出位置。