Cloud Build 如何采用动态参数来增加注册表标签?

Jos*_*Fox 2 docker google-cloud-build

我希望我的 Cloud Build 将带有递增标签的映像推送到注册表。因此,当触发器从 GitHub 到达时,构建映像,如果最新标签是1.10,则标记新标签1.11。同样,该1.11值将在构建中的多个其他步骤中使用。

读取注册表并增加标签很容易(在 bash Cloud Build 步骤中),但 Cloud Build 无法传递参数。(替换来自 Cloud Build 流程外部,例如来自 Git 标签,并且不是在流程内部生成。)

此 StackOverflow 问题本文表示 Cloud Build 步骤可以通过将文件写入工作区目录来进行通信。

那很笨拙。但更糟糕的是,这需要专门使用 shell 步骤,而不是本机 docker 构建步骤,也不是本机image命令。

我怎样才能做到这一点?

gui*_*ere 6

遗憾的是你不能。Cloud Builder 映像每次都有自己的沙箱,并且仅/workspace安装目录。顺便说一句,所有环境变量、安装的二进制文件等都不会从一个容器持续到下一个容器。

你每次都必须使用shell脚本:(最简单的方法是在你的目录中有一个文件/workspace(例如env.var文件)

# load the environment variable
source /workspace/env.var
# Add variable
echo "NEW=Variable" >> /workspace/env.var
Run Code Online (Sandbox Code Playgroud)

为此,Cloud Build 很无聊......

  • Cloud Build 以前被称为 Container Builder,这仍然是一个合适的名称。尽管它*可以*做其他事情,但它擅长的一件事是构建图像,而不需要复杂的管道逻辑。 (2认同)