- 我本地创建了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
行之前没有出现错误 :(