使用 docker 的 github 操作会出现错误“导出到图像 403 禁止错误”

장동균*_*장동균 6 docker github-actions

name: CI/CD Docker\n\non:\n  push:\n    branches: [main]\n\nenv:\n  DOCKER_IMAGE: ghcr.io/${{ github.actor }}/github-actions-auto\n  VERSION: ${{ github.sha }}\n  NAME: go_cicd\n\njobs:\n  build:\n    name: Build\n    runs-on: ubuntu-latest\n    steps:\n      # github repository\xec\x97\x90\xec\x84\x9c checkout\n      - uses: actions/checkout@v2\n      - name: Set up docker buildx\n        id: buildx\n        uses: docker/setup-buildx-action@v1\n      - name: Cache docker layers\n        uses: actions/cache@v2\n        with:\n          path: /tmp/.buildx-cache\n          key: ${{ runner.os }}-buildx-${{ env.VERSION }}\n          restore-keys: |\n            ${{ runner.os }}-buildx-\n      - name: Login to ghcr\n        uses: docker/login-action@v1\n        with:\n          registry: ghcr.io\n          username: ${{ github.actor }}\n          password: ${{ secrets.GHCR_TOKEN }}\n      - name: Build and push\n        id: docker_build\n        uses: docker/build-push-action@v2\n        with:\n          builder: ${{ steps.buildx.outputs.name }}\n          push: true\n          tags: ${{ env.DOCKER_IMAGE }}:latest\n  deploy:\n    needs: build\n    name: Deploy\n    runs-on: [self-hosted, label-go]\n    steps:\n      - name: Login to ghcr\n        uses: docker/login-action@v1\n        with:\n          registry: ghcr.io\n          username: ${{ github.actor }}\n          password: ${{ secrets.GHCR_TOKEN }}\n      - name: Docker run\n        run: |\n          docker stop ${{ env.NAME }} && docker rm ${{ env.NAME }} && docker rmi ${{ env.DOCKER_IMAGE }}:latest\n          docker run -d -p 8080:80 --name go_cicd --restart always ${{ env.DOCKER_IMAGE }}:latest\n\n
Run Code Online (Sandbox Code Playgroud)\n

这是我们的 Dockerfile。如果我将代码推送到主分支,则此 CI/CD 管道运行良好。但是我的伙伴将代码推送到主分支,它会产生 403 禁止错误。我不知道如何解决这个问题...如何解决这个错误?

\n

在此输入图像描述

\n

这是 github actions 中的错误消息。

\n

avi*_*zzy 10

对于将来遇到此问题的任何人,您需要执行以下操作才能使预构建的 github 操作将 docker 映像推送到 azure Web 应用程序工作,

jobs:
  build-and-push-image:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
Run Code Online (Sandbox Code Playgroud)

您需要添加权限部分下面给出的内容。参考:https://docs.github.com/en/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#publishing-a-使用动作进行打包


kei*_*ala 7

将以下权限添加到构建作业解决了我的这个问题。我不确定它对任何人都有效,但这是我在寻找解决方案时发现的第一个问题。希望它可以帮助未来的人们:

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      packages: write
Run Code Online (Sandbox Code Playgroud)

这是取自这个答案:https ://stackoverflow.com/a/71438011/14387852