我已经将github repo与我的docker hub帐户链接起来。当有一个到githubmaster
分支的推送时,将在dockerhub中构建一个新的映像。但是图像只有LATEST
标签。如何使版本自动增加?
理想情况下,我希望它遵循版本1.0.0
。并且每推1.0.1
、1.0.2
、1.0.3
等增加
有没有办法让它遵循这种模式?
您可以将GitHub Action工作流与您的存储库相关联,如docker/metadata-action
GitHub为Docker提取元数据(标签、标签(的操作。如果与Docker Build Push操作一起使用,则此操作特别有用。
您可以在此处看到它的用法。警告:标记名称(由GitHub操作生成(也将包含分支名称。
我也遇到了同样的问题,用这个GitHub操作代码解决了:
- 创建一个名为MAJOR的秘密以保存您的市长版本
- 创建一个名为MINOR的秘密以保存您的次要版本
- 您将需要一个令牌来更新您的回购机密,因此…创建一个名为repo_ACCESS_token的机密,以授予您的行动剂量他的工作
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 }}
这是我的最后一段代码,正如你所看到的,我还有最后一步只是更新次要版本,前提是所有其他作业都运行正常。