- 我在本地创建了Docker镜像
- Github Docker注册表
- 已将其推送到Github Docker注册表
现在我想在Github中使用它,在FROM
字段中创建Docker镜像,但它总是失败,出现unauthorized
错误-为什么?
步骤如下:
docker tag my_image:1.0 ghcr.io/<github_user>/<organization>/<repo_name>/my_image:1.0
docker push ghcr.io/<github_user>/<organization>/<repo_name>/my_image:1.0
a4f566342e89: Pushed
0378d9143186: Pushed
...
f337026e7d90: Pushed
你所看到的一切都成功完成了,我甚至可以在我的电脑上docker pull
它
然后我设置Github action并将其设置为启动Powershell脚本,从这个Dockerfile创建Docker镜像:
所以Github action设置为:
...
...
jobs:
build:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- name: Package with Docker and push to Github packages
id: build_and_push_docker_image
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
src/database/base-image/github-build.ps1
只有一步!
Powershell脚本本身:
...
docker login ghcr.io --username $env:GITHUB_ACTOR --password $env:GITHUB_TOKEN
...
docker build src/database/base-image --file "src/database/base-image/databaseCreateBaseImage.Dockerfile" --tag sqldatabase/base:$VERSION
...
...
Docker文件是:
FROM ghcr.io/<github_user>/<organization>/<repo_name>/my_image:1.0
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
...
...
但可悲的是,当Github action运行时,它总是在FROM
行失败,并显示错误消息:
Step 1/7 : FROM ghcr.io/<github_user>/<organization>/<repo_name>/my_image:1.0
Get https://ghcr.io/v2/<github_user>/<organization>/<repo_name>/my_image/manifests/1.0: unauthorized
...
...
可能有人可以提供一些光-为什么它没有被授权pull
这个图像?所有的操作都没有错误,直到FROM
行:(
4条答案
按热度按时间hwamh0ep1#
我的错
根据Github文档,使用
GITHUB_TOKEN
对GitHub包进行身份验证不是(!)足够.如果你想使用Github注册表(ghcr.io)你**必须(!)**使用您的个人访问令牌。hi3rlvi22#
这帮助了我:
rxztt3cl3#
确保GitHub Actions可以访问Docker Image(如@sihil所述),并将以下步骤添加到您的作业中:
lymnna714#
我想你可能需要做两件事:
更多细节请参见我对GITHUB_TOKEN permission denied write package when build and push docker in github workflows的回答