7.2. 本地构建工作流镜像
您可以使用构建脚本(build.sh)来构建工作流镜像。您可以在本地运行它,也可以在容器内运行。本节重点介绍如何在本地构建工作流镜像。
流程
按以下示例所示克隆项目:
git clone git@github.com:rhdhorchestrator/orchestrator-demo.git cd orchestrator-demo检查脚本的帮助菜单:
./scripts/build.sh --help运行
build.sh脚本,提供所需的标记,例如镜像路径(-i)、工作流源目录(-w)和清单输出目录(-m)。重要您必须使用标签指定完整目标镜像路径,如下例所示:
./scripts/build.sh --image=quay.io/orchestrator/demo-basic:test -w 01_basic/ -m 01_basic/manifests
7.2.1. build-sh 脚本的功能和重要标记 复制链接链接已复制到粘贴板!
build-sh 脚本按顺序执行以下任务:
-
使用
kn-workflowCLI 生成工作流清单。 -
使用
podman或docker构建工作流镜像。 -
可选:该脚本将镜像推送到镜像 registry,并使用
kubectl部署工作流。
您可以通过访问帮助菜单来查看脚本配置选项并查看可用的标记及其功能:
./scripts/build.sh [flags]
以下标记对于运行脚本至关重要:
| 标记 | 描述 |
|---|---|
|
|
必需:完整镜像路径,如 |
|
| 工作流源目录(默认为当前目录) |
|
| 保存生成的清单的位置 |
|
| 将镜像推送到 registry |
|
| 部署工作流 |
|
| 显示帮助信息 |
该脚本还支持构建器和运行时镜像覆盖、命名空间目标和持久性标记。
7.2.2. 构建脚本支持的环境变量 复制链接链接已复制到粘贴板!
构建脚本 支持以下环境变量来自定义工作流构建过程,而无需修改脚本本身:
QUARKUS_EXTENSIONSQUARKUS_EXTENSIONS变量指定工作流所需的其他 Quarkus 扩展。此变量采用以逗号分隔的完全限定扩展 ID 列表,如下例所示:export QUARKUS_EXTENSIONS="io.quarkus:quarkus-smallrye-reactive-messaging-kafka"在构建时添加 Kafka 消息传递支持或其他集成。
MAVEN_ARGS_APPENDMAVEN_ARGS_APPEND变量在 Maven build 命令中附加额外参数。此变量采用 Maven CLI 参数的字符串格式,如下例所示:export MAVEN_ARGS_APPEND="-DmaxYamlCodePoints=35000000"控制构建行为。例如,设置
maxYamlCodePoints参数,该参数控制 YAML 输入文件的最大输入大小,到 35000000 字符( UTF-8 中的~33MB)。
7.2.3. 所需工具 复制链接链接已复制到粘贴板!
要在本地运行 构建脚本 并管理工作流生命周期,您必须安装以下命令行工具:
| 工具 | 概念目的. |
|---|---|
| podman 或 docker | 构建工作流镜像所需的容器运行时。 |
|
| Kubernetes CLI。 |
|
| YAML 处理器. |
|
| JSON 处理器. |
|
| Shell 工具. |
|
| 用于生成工作流清单的 CLI。 |
7.2.4. 构建 01_basic 工作流 复制链接链接已复制到粘贴板!
要从存储库的根目录运行脚本,您必须使用 -w 标志指向工作流目录。此外,使用 -m 标志指定输出目录。
先决条件
- 已使用标签指定目标镜像。
流程
运行以下命令:
./scripts/build.sh --image=quay.io/orchestrator/demo-basic:test -w 01_basic/ -m 01_basic/manifests此构建命令生成以下两个工件:
-
工作流镜像和 Kubernetes 清单:
quay.io/orchestrator/demo-basic:test,并标记为latest。 -
Kubernetes manifests in:
01_basic/manifests/
-
工作流镜像和 Kubernetes 清单:
-
可选:您可以添加--
push标志,以便在构建后自动推送镜像。否则,部署前需要手动推送。