gpt4 book ai didi

google-cloud-build - 是否可以在 Google Cloud Build 中动态生成标签?

转载 作者:行者123 更新时间:2023-12-04 14:15:22 24 4
gpt4 key购买 nike

首先:我对云构建有点陌生。与以前使用的方法相比,我发现它是一个令人痛苦、不成熟且相当烦人的框架。无休止的时间花在让构建器开始工作(例如, Helm 构建器)上,它的局限性令人惊讶和令人沮丧。也许下面的问题就是一个很好的例子:

我想构建并推送一个 docker 镜像。根据文档,最后要推送到 docker 存储库的图像(我为此使用 GCR)位于我的 cloudbuild.yaml 文件中的以下配置部分:

images:
- 'eu.gcr.io/$PROJECT_ID/my-project:${_TAG}'
- 'eu.gcr.io/$PROJECT_ID/my-project:latest'

我可以使用以下部分手动设置 _TAG 替换:
substitutions:
_TAG: x.y.z

但这意味着我每次都必须手动修复此文件中的版本号。更糟糕的是:如果我分支出来,我需要一直维护版本号。在这种情况下,我有一个 python 项目,它使用 setuptools,版本自然包含在 setup.py 文件中,我可以毫无问题地解析它。尝试将数字解析为特定文件并在图像部分使用 $(cat VERSION) 失败,因为系统声称它无法替换 $(cat VERSION) 部分。那么如何在另一个构建步骤中覆盖 _TAG 变量,使其在“图像”部分中显示正确?

最佳答案

如果您使用来自 Cloud Source Repositories、GitHub 或 Bitbucket 的触发构建,您可以标记您的提交并使用 $TAG_NAME default substitution variable .

 images:
- 'eu.gcr.io/$PROJECT_ID/my-project:$TAG_NAME'
- 'eu.gcr.io/$PROJECT_ID/my-project:latest'

另一方面,如果您使用 Cloud SDK 提交 Cloud Build 构建,则可以使用 --substitutions argument 提供值。 :
gcloud builds submit [SOURCE] --config config.yaml --substitutions _TAG=x.y.z

另外我相信你会发现这个 GitOps-style continuous delivery with Cloud Build tutorial很有帮助。它介绍了如何使用 Cloud Build 在 Google Cloud Platform 上创建持续集成和交付 (CI/CD) 管道。

关于google-cloud-build - 是否可以在 Google Cloud Build 中动态生成标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60790781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com