장동균*_*장동균 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\nRun Code Online (Sandbox Code Playgroud)\n这是我们的 Dockerfile。如果我将代码推送到主分支,则此 CI/CD 管道运行良好。但是我的伙伴将代码推送到主分支,它会产生 403 禁止错误。我不知道如何解决这个问题...如何解决这个错误?
\n\n这是 github actions 中的错误消息。
\navi*_*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-使用动作进行打包
将以下权限添加到构建作业解决了我的这个问题。我不确定它对任何人都有效,但这是我在寻找解决方案时发现的第一个问题。希望它可以帮助未来的人们:
jobs:
build:
runs-on: ubuntu-latest
permissions:
packages: write
Run Code Online (Sandbox Code Playgroud)
这是取自这个答案:https ://stackoverflow.com/a/71438011/14387852
| 归档时间: |
|
| 查看次数: |
6523 次 |
| 最近记录: |