【发布时间】:2021-06-25 07:23:50
【问题描述】:
我已将 github 存储库链接到我的 docker hub 帐户。当推送到 github master 分支时,会在 docker hub 中构建一个新镜像。但图像只有LATEST 标签。如何让版本自动增加?
理想情况下,我希望它遵循1.0.0 的版本。并为每次推送增加1.0.1、1.0.2 1.0.3 等。
有没有办法让它遵循这种模式?
【问题讨论】:
我已将 github 存储库链接到我的 docker hub 帐户。当推送到 github master 分支时,会在 docker hub 中构建一个新镜像。但图像只有LATEST 标签。如何让版本自动增加?
理想情况下,我希望它遵循1.0.0 的版本。并为每次推送增加1.0.1、1.0.2 1.0.3 等。
有没有办法让它遵循这种模式?
【问题讨论】:
您可以将 GitHub Action 工作流与您的存储库相关联,例如 docker/metadata-action
GitHub Action 为 Docker 提取元数据(标签、标签)。如果与Docker Build Push action 一起使用,此操作特别有用。
您可以see it used here。警告:标签名称(由 GitHub 操作生成)也将包含分支名称。
【讨论】:
我遇到了同样的问题,用这个 GitHub 操作代码解决了:
name: Docker Image CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
-
name: Build the Docker image
run: docker build . --file src/MasterReport.UI/Dockerfile --tag eriksongm/master-report:${{ secrets.MAJOR }}.${{ secrets.MINOR }}
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Push to DockerHub
run: docker push eriksongm/master-report:${{ secrets.MAJOR }}.${{ secrets.MINOR }}
-
name: Update Minor version
uses: hmanzur/actions-set-secret@v2.0.0
with:
name: 'MINOR'
value: $((${{ secrets.MINOR }}+1))
repository: EriksonGM/MasterReport
token: ${{ secrets.REPO_ACCESS_TOKEN }}
这是我的最终代码,如您所见,我还有最后一步只是更新次要版本,前提是所有其他作业都运行正常。
【讨论】: