Tob*_*ert 5 github docker github-actions docker-push
我正在尝试在我的 github 操作中运行 docker Push,因为喜欢使用相同的图像作为不同存储库的一部分。我正在使用的代码如下:
docker build . --pull --rm --file "$GITHUB_WORKSPACE/${{ matrix.path }}/Dockerfile" --tag ${{ matrix.name }}
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
IMAGE_ID=ghcr.io/${{ github.repository }}/${{ matrix.name }}
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
docker tag ${{ matrix.name }} $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
Run Code Online (Sandbox Code Playgroud)
我收到的错误与权限有关:
denied: installation not allowed to Create organization package"
Run Code Online (Sandbox Code Playgroud)
任何建议我的权限中缺少什么。
感谢大家的提示,这是缺少 PAT 规则和错误格式的组合。以下代码现在可以运行:
docker build . --pull --rm --file "$GITHUB_WORKSPACE/${{ matrix.path }}/Dockerfile" --tag ${{ matrix.name }}
echo "${{ secrets.GIT_DOCKER_PAT }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
IMAGE_ID=ghcr.io/${{ github.actor }}/${{ matrix.name }}
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
docker tag ${{ matrix.name }} $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
Run Code Online (Sandbox Code Playgroud)
PAT 具有以下权限:
| 归档时间: |
|
| 查看次数: |
5143 次 |
| 最近记录: |