【问题标题】:Docker build and push using github: invalid reference formatDocker 使用 github 构建和推送:无效的参考格式
【发布时间】:2021-12-06 08:07:05
【问题描述】:

我想构建我的图像并使用 github 操作将其推送到 dockerhub。这是my repo

这就是我想做的工作:

name: ci

on:
  push:
    branches:
      - 'master'

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v1
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
      -
        name: Login to DockerHub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_PASSWORD }}
      -
        name: Build and push
        uses: docker/build-push-action@v2
        with:
          context: .
          load: true
          tags: shirzadi/ehsan:latest
      -
        name: Push it!
        run: docker push ${{ env.IMAGE }}:${{ env.GIT_SHA }}

结果如下:

【问题讨论】:

  • env.IMAGEenv.GIT_SHA 来自哪里?
  • @AymDev 我以为那些是github预定义的变量我应该放什么?

标签: docker github continuous-integration github-actions


【解决方案1】:

您正在使用不存在的环境变量。根据docker/build-push-action@v2 文档,它可以一步构建、标记和推送您的图像:

jobs:
  docker:
    steps:
      # ...
      -
        name: Build and push
        uses: docker/build-push-action@v2
        with:
          context: .
          push: true
          tags: shirzadi/ehsan:latest,shirzadi/ehsan:${{ env.GITHUB_SHA }}

tags 键列出 2 个标签并使用 GITHUB_SHA 环境变量。这些标签将在 push 键设置为 true 时被推送。

见:

【讨论】:

  • Error: buildx failed with: error: push and load 目前可能没有设置在一起
  • @ehsanshirzadi 你需要使用这个load 选项吗?我不确定它的目的。如果它生成您不使用的图像的 tarball,只需将其删除。
【解决方案2】:

您没有 env.IMAGE 数据。下面的代码应该可以完成这项工作。

      - name: Build and push
        run: docker build -t ${{ env.IMAGE }}:${{ github.sha }} .
        env:
          IMAGE: shirzadi/ehsan
           

      - name: Push it!
        run: docker push ${{ env.IMAGE }}:${{ github.sha }}
        env:
          IMAGE: shirzadi/ehsan

【讨论】:

  • 一个错误说:Unrecognized named-value: 'IMAGE' => run: docker push ${{ IMAGE }}:${{ GIT_SHA }}
  • 我已经编辑了我的答案,我错过了一件小事。请检查更新的答案?
猜你喜欢
  • 1970-01-01
  • 2018-01-22
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-16
  • 2021-09-30
  • 2020-08-06
相关资源
最近更新 更多