【发布时间】: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_HOST、ACR_USERNAME和ACR_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