2.7. 执行和配置基本构建
以下小节提供了有关基本构建操作的说明,包括启动和取消构建、编辑 BuildConfig
、删除 BuildConfig
、查看构建详情以及访问构建日志。
2.7.1. 启动构建
您可以从当前项目中的现有构建配置手动启动新构建。
流程
要手动启动构建,请输入以下命令:
$ oc start-build <buildconfig_name>
2.7.1.1. 重新运行构建
您可以使用 --from-build
标志,手动重新运行构建。
流程
要手动重新运行构建,请输入以下命令:
$ oc start-build --from-build=<build_name>
2.7.1.2. 流传输构建日志
您可以指定 --follow
标志,在 stdout
中输出构建日志。
流程
要在
stdout
中手动输出构建日志,请输入以下命令:$ oc start-build <buildconfig_name> --follow
2.7.1.3. 在启动构建时设置环境变量
您可以指定 --env
标志,为构建设置任何所需的环境变量。
流程
要指定所需的环境变量,请输入以下命令:
$ oc start-build <buildconfig_name> --env=<key>=<value>
2.7.1.4. 使用源启动构建
您可以通过直接推送源来启动构建,而不依赖于 Git 源拉取或构建的 Dockerfile;源可以是 Git 或 SVN 工作目录的内容、您想要部署的一组预构建二进制工件,或者单个文件。这可以通过为 start-build
命令指定以下选项之一来完成:
选项 | 描述 |
---|---|
| 指定将要存档并用作构建的二进制输入的目录。 |
| 指定将成为构建源中唯一文件的单个文件。该文件放在空目录的根目录中,其文件名与提供的原始文件相同。 |
|
指定用作构建二进制输入的本地存储库的路径。添加 |
将任何这些选项直接传递给构建时,内容将流传输到构建中并覆盖当前的构建源设置。
从二进制输入触发的构建不会在服务器上保留源,因此基础镜像更改触发的重新构建将使用构建配置中指定的源。
流程
使用以下命令从源启动构建,以将本地 Git 存储库的内容作为标签
v2
的存档发送:$ oc start-build hello-world --from-repo=../hello-world --commit=v2
2.7.2. 取消构建
您可以使用 Web 控制台或通过以下 CLI 命令来取消构建。
流程
要手动取消构建,请输入以下命令:
$ oc cancel-build <build_name>
2.7.2.1. 取消多个构建
您可以使用以下 CLI 命令取消多个构建。
流程
要手动取消多个构建,请输入以下命令:
$ oc cancel-build <build1_name> <build2_name> <build3_name>
2.7.2.2. 取消所有构建
您可以使用以下 CLI 命令取消构建配置中的所有构建。
流程
要取消所有构建,请输入以下命令:
$ oc cancel-build bc/<buildconfig_name>
2.7.2.3. 取消给定状态下的所有构建
您可以取消给定状态下的所有构建,如 new
或 pending
状态,同时忽略其他状态下的构建。
流程
要取消给定状态下的所有内容,请输入以下命令:
$ oc cancel-build bc/<buildconfig_name>
2.7.3. 编辑 BuildConfig
要编辑构建配置,您可以使用 Developer 视角的 Builds 视图中的 Edit BuildConfig 选项。
您可以使用以下任一视图编辑 BuildConfig
:
-
Form 视图 允许您使用标准表单字段和复选框编辑
BuildConfig
。 -
YAML 视图 允许您编辑
BuildConfig
,完全控制操作。
您可以在 Form view 和 YAML 视图间切换,而不丢失任何数据。Form 视图中的数据传输到 YAML 视图,反之亦然。
流程
- 在 Developer 视角 的 Builds 视图中,点击菜单 来查看 Edit BuildConfig 选项。
- 点击 Edit BuildConfig 以查看 Form view 选项。
在 Git 部分中,输入您要用来创建应用程序的代码库的 Git 存储库 URL。这个 URL 随后会被验证。
可选:点击 Show Advanced Git Options 来添加详情,例如:
- Git Reference,用于指定包含您要用来构建应用程序的代码的分支、标签或提交。
- Context Dir,用于指定包含您要用来构建应用程序的代码的子目录。
- Source Secret,创建一个具有用来从私有存储库拉取源代码的凭证的 Secret Name。
在 Build from 部分中,选择您要从中构建的选项。您可以使用以下选项:
- 镜像流标签 引用给定镜像流和标签的镜像。输入您要从构建并推送到的位置的项目、镜像流和标签。
- 镜像流镜像 引用给定镜像流和镜像名称的镜像。输入您要从中构建的镜像流镜像。另外,进入要推送到的项目、镜像流和标签。
- Docker 镜像 :通过 Docker 镜像存储库引用 Docker 镜像。您还需要进入项目、镜像流和标签,以引用您要推送到的位置。
- 可选:在 Environment Variables 部分中,使用 Name 和 Value 字段添加与项目关联的环境变量。要添加更多环境变量,请使用 Add Value 或 Add from ConfigMap 和 Secret。
可选: 要进一步自定义应用程序,请使用以下高级选项:
- Trigger
- 构建器镜像更改时触发新镜像构建。点 Add Trigger 并选择 Type 和 Secret 来添加更多触发器。
- Secrets
- 为应用添加 secret。点 Add secret 并选择 Secret 和 Mountpoint 来添加更多 secret。
- 策略
- 单击 Run policy 以选择构建运行策略。所选策略决定从构建配置创建的构建必须运行的顺序。
- Hook
- 选择择 Run build hooks after image is built,以在构建结束时运行命令并验证镜像。添加 Hook 类型、命令 和 参数,以附加到 命令。
-
单击 Save 以保存
BuildConfig
。
2.7.4. 删除 BuildConfig
您可以使用以下命令来删除 BuildConfig
。
流程
要删除
BuildConfig
,请输入以下命令:$ oc delete bc <BuildConfigName>
这也会删除从此
BuildConfig
实例化的所有构建。要删除
BuildConfig
并保留从BuildConfig
中初始化的构建,在输入以下命令时指定--cascade=false
标志:$ oc delete --cascade=false bc <BuildConfigName>
2.7.5. 查看构建详情
您可以使用 Web 控制台或 oc describe
CLI 命令查看构建详情。
这会显示,包括:
- 构建源。
- 构建策略。
- 输出目的地。
- 目标 registry 中的镜像摘要。
- 构建的创建方式。
如果构建采用 Docker
或 Source
策略,则 oc describe
输出还包括用于构建的源修订的相关信息,包括提交 ID、作者、提交者和消息等。
流程
要查看构建详情,请输入以下命令:
$ oc describe build <build_name>
2.7.6. 访问构建日志
您可以使用 Web 控制台或 CLI 访问构建日志。
流程
要直接使用构建来流传输日志,请输入以下命令:
$ oc describe build <build_name>
2.7.6.1. 访问 BuildConfig 日志
您可以使用 Web 控制台或 CLI 访问 BuildConfig
日志。
流程
要输出
BuildConfig
的最新构建的日志,请输入以下命令:$ oc logs -f bc/<buildconfig_name>
2.7.6.2. 访问给定版本构建的 BuildConfig 日志
您可以使用 Web 控制台或 CLI 访问 BuildConfig
的给定版本构建的日志。
流程
要输出
BuildConfig
的给定版本构建的日志,请输入以下命令:$ oc logs --version=<number> bc/<buildconfig_name>
2.7.6.3. 启用日志详细程度
您可以传递 BUILD_LOGLEVEL
环境变量作为 BuildConfig
中 sourceStrategy
或 dockerStrategy
的一部分,来实现更为详细的输出。
管理员可以通过配置 env/BUILD_LOGLEVEL
,为整个 OpenShift Container Platform 实例设置默认的构建详细程度。此默认值可以通过在给定的 BuildConfig
中指定 BUILD_LOGLEVEL
来覆盖。您可以通过将 --build-loglevel
传递给 oc start-build
,在命令行中为非二进制构建指定优先级更高的覆盖。
源构建的可用日志级别如下:
0 级 |
生成运行 |
1 级 | 生成有关已执行进程的基本信息。 |
2 级 | 生成有关已执行进程的非常详细的信息。 |
3 级 | 生成有关已执行进程的非常详细的信息,以及存档内容的列表。 |
4 级 | 目前生成与 3 级相同的信息。 |
5 级 | 生成以上级别中包括的所有内容,另外还提供 Docker 推送消息。 |
流程
要启用更为详细的输出,请传递
BUILD_LOGLEVEL
环境变量作为BuildConfig
中sourceStrategy
或dockerStrategy
的一部分:sourceStrategy: ... env: - name: "BUILD_LOGLEVEL" value: "2" 1
- 1
- 将此值调整为所需的日志级别。