【问题标题】:Github workflow: requested access to the resource is deniedGithub 工作流程:请求的资源访问被拒绝
【发布时间】:2022-08-11 05:15:14
【问题描述】:

我正在尝试使用 GitHub 工作流使用Dockerfile 构建一个 ASP.NET 6 项目,然后使用 docker 将图像推送到私有 Azure Registry。

这是我的.yml 文件

name: Docker Image CI

on:
  push:
    branches: [ \"main\" ]
  pull_request:
    branches: [ \"main\" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Login To Azure Container Registr 
      uses: Azure/docker-login@v1 
      with:
        login-server: ${{ secrets.ACR_HOST }}
        username: ${{ secrets.ACR_USERNAME }}
        password: ${{ secrets.ACR_PASSWWORD }} 
    - name: Build And Push Docker Images
      uses: docker/build-push-action@v3.1.1
      with:
        push: true
        file: ./Dockerfile
        tags: companyname/projectname:${{ github.run_number }}
       

在上面,Dockerfile 位于我项目代码的根目录中。

但是,构建运行我收到以下错误

错误:buildx 失败:错误:拒绝:请求的资源访问被拒绝

在我的存储库设置的Secrets > Action 部分,我添加了ACR_HOSTACR_USERNAMEACR_PASSWORD 秘密。

查看日志时,此问题似乎发生在日志中的此行之后

pushing companyname/projectname:2 with docker:

我该如何解决这个问题?

更新

我将.yml 脚本更改为以下

name: Docker Image CI

on:
  push:
    branches: [ \"main\" ]
  pull_request:
    branches: [ \"main\" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Login To Azure Container Registr 
      uses: Azure/docker-login@v1 
      with:
        login-server: mycontainer.azurecr.io
        username: \"The admin username\"
        password: \"The admin password\"

    - run: cat ${{ env.DOCKER_CONFIG }}/config.json

    - name: Build And Push Docker Images
      uses: docker/build-push-action@v3.1.1
      with:
        push: true
        file: ./Dockerfile
        tags: companyname/projectname:${{ github.run_number }}

添加的步骤(即cat ${{ env.DOCKER_CONFIG }}/config.json)显示如下所示的 json 字符串

{\"auths\":{\"mycontainer.azurecr.io\":{\"auth\":\"BASE64 string with the admin username:password as expected\"}}}

base64 字符串的格式如下username:password

我假设步骤Azure/docker-login@v1 没有问题并正确暂存docker/build-push-action@v3.1.1 的令牌。

如果我在docker/build-push-action@v3.1.1 步骤中将push 标志设置为false,则工作流运行没有问题。因此,据我所知,问题在于docker/build-push-action@v3.1.1 步骤尝试将创建的映像推送到 Azure 注册表。

我使用我的本地机器使用相同的凭据登录,并且所有工作都没有问题docker login mycontainer.azurecr.io

此外,来自本地计算机的登录请求已登录到 Azure 门户。但是,我在运行工作流时看不到请求。

我认为主要问题是步骤docker/build-push-action@v3.1.1 在推送图像之前不会尝试登录。

    标签: docker github dockerfile github-actions docker-image


    【解决方案1】:

    我按照here 的说明进行操作,并且成功了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2023-02-14
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多