Aur*_*ien 5 gitlab docker gitlab-ci gitlab-ci-runner
我目前正在研究 Gitlab CI。我想在我的 YAML 文件中添加一种方法来标记由构建步骤生成的 docker 图像,并使用以下方式组成的版本号推送到我的 Gitlab 注册表:MajorVersion.Minorversion.BuildNumber
我想自动增加 BuildNumber,但要手动设置 MajorVersion 和 MinorVersion。
我为构建 ID找到了一个标准变量CI_JOB_ID。但我需要一种流畅的方式来管理我的版本号..
所以我通过在脚本中添加CI_VERSION变量来做到这一点:
variables:
CI_VERSION: "1.0.${CI_JOB_ID}"
build-master:
stage: build
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE" -t "$CI_REGISTRY_IMAGE:$CI_VERSION" ./postfix
- docker push "$CI_REGISTRY_IMAGE"
only:
- master
Run Code Online (Sandbox Code Playgroud)
它工作得很好,现在我需要找到一种方法来保留十个(例如)最后一个版本。
不是 100% 适合您的解决方案,但我们正在为此目的使用标签。
部分gitlab-ci.yml
- docker build --pull -t $CI_REGISTRY/releases/application:$CI_COMMIT_TAG .
- docker push $CI_REGISTRY/releases/application:$CI_COMMIT_TAG
Run Code Online (Sandbox Code Playgroud)
因此,每次我们推送新标签时,都会构建一个带有版本号的新 docker 镜像。您可以通过以下方式限制这些步骤.gitlab-ci.yml:
only:
- tags
- /^my-release-.*$/
Run Code Online (Sandbox Code Playgroud)
现在只推送带有“my-release-xxx”的标签。
| 归档时间: |
|
| 查看次数: |
4200 次 |
| 最近记录: |