7.2. 本地构建工作流镜像


您可以使用构建脚本(build.sh)来构建工作流镜像。您可以在本地运行它,也可以在容器内运行。本节重点介绍如何在本地构建工作流镜像。

流程

  1. 按以下示例所示克隆项目:

    git clone git@github.com:rhdhorchestrator/orchestrator-demo.git
    cd orchestrator-demo
  2. 检查脚本的帮助菜单:

    ./scripts/build.sh --help
  3. 运行 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-workflow CLI 生成工作流清单。
  • 使用 podmandocker 构建工作流镜像。
  • 可选:该脚本将镜像推送到镜像 registry,并使用 kubectl 部署工作流。

您可以通过访问帮助菜单来查看脚本配置选项并查看可用的标记及其功能:

./scripts/build.sh [flags]

以下标记对于运行脚本至关重要:

Expand
标记描述

-i,--image

必需:完整镜像路径,如 quay.io/orchestrator/demo:latest

-w,--workflow-directory

工作流源目录(默认为当前目录)

-m, --manifests-directory

保存生成的清单的位置

--push

将镜像推送到 registry

--deploy

部署工作流

-h,--help

显示帮助信息

提示

该脚本还支持构建器和运行时镜像覆盖、命名空间目标和持久性标记。

7.2.2. 构建脚本支持的环境变量

构建脚本 支持以下环境变量来自定义工作流构建过程,而无需修改脚本本身:

QUARKUS_EXTENSIONS

QUARKUS_EXTENSIONS 变量指定工作流所需的其他 Quarkus 扩展。此变量采用以逗号分隔的完全限定扩展 ID 列表,如下例所示:

export QUARKUS_EXTENSIONS="io.quarkus:quarkus-smallrye-reactive-messaging-kafka"

在构建时添加 Kafka 消息传递支持或其他集成。

MAVEN_ARGS_APPEND

MAVEN_ARGS_APPEND 变量在 Maven build 命令中附加额外参数。此变量采用 Maven CLI 参数的字符串格式,如下例所示:

export MAVEN_ARGS_APPEND="-DmaxYamlCodePoints=35000000"

控制构建行为。例如,设置 maxYamlCodePoints 参数,该参数控制 YAML 输入文件的最大输入大小,到 35000000 字符( UTF-8 中的~33MB)。

7.2.3. 所需工具

要在本地运行 构建脚本 并管理工作流生命周期,您必须安装以下命令行工具:

Expand
工具概念目的.

podman 或 docker

构建工作流镜像所需的容器运行时。

kubectl

Kubernetes CLI。

yq

YAML 处理器.

jq

JSON 处理器.

curl,git,查找,which

Shell 工具.

kn-workflow

用于生成工作流清单的 CLI。

7.2.4. 构建 01_basic 工作流

要从存储库的根目录运行脚本,您必须使用 -w 标志指向工作流目录。此外,使用 -m 标志指定输出目录。

先决条件

  • 已使用标签指定目标镜像。

流程

  1. 运行以下命令:

    ./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/
  2. 可选:您可以添加-- push 标志,以便在构建后自动推送镜像。否则,部署前需要手动推送。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部