【问题标题】:How can I set the docker image version automatically from github?如何从 github 自动设置 docker 镜像版本?
【发布时间】:2021-06-25 07:23:50
【问题描述】:

我已将 github 存储库链接到我的 docker hub 帐户。当推送到 github master 分支时,会在 docker hub 中构建一个新镜像。但图像只有LATEST 标签。如何让版本自动增加?

理想情况下,我希望它遵循1.0.0 的版本。并为每次推送增加1.0.11.0.2 1.0.3 等。

有没有办法让它遵循这种模式?

【问题讨论】:

    标签: docker dockerhub


    【解决方案1】:

    您可以将 GitHub Action 工作流与您的存储库相关联,例如 docker/metadata-action

    GitHub Action 为 Docker 提取元数据(标签、标签)。如果与Docker Build Push action 一起使用,此操作特别有用。

    您可以see it used here。警告:标签名称(由 GitHub 操作生成)也将包含分支名称。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,用这个 GitHub 操作代码解决了:

      1. 创建一个名为 MAJOR 的秘密来保存您的市长版本
      2. 创建一个名为 MINOR 的密钥来保存您的次要版本
      3. 您将需要一个令牌来更新您的 repo 机密,因此...创建一个名为 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 }}
      

      这是我的最终代码,如您所见,我还有最后一步只是更新次要版本,前提是所有其他作业都运行正常。

      【讨论】:

      • 为我工作。谢谢!
      • 这不起作用。尝试使用递增标签构建 docker 映像时出错。错误:buildx 失败:错误:无效标签“ghcr.io/my-company/my-repo:***.***”:无效参考格式
      • @Mikolaj,你能分享你的代码吗?
      • @EriksonGomes 我添加了一个新问题:stackoverflow.com/questions/70925425/…
      猜你喜欢
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 2023-04-02
      • 2020-03-23
      • 1970-01-01
      • 2022-10-15
      • 2020-07-08
      • 1970-01-01
      相关资源
      最近更新 更多