我有一个简单的节点应用程序,其 Dockerfile 如下:
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN yarn
COPY . .
EXPOSE 8080
CMD [ "yarn", "start" ]
此文件在本地构建并运行良好。
尝试将其作为图像推送到
DockerHub
,如下通过Github Actions
。
请注意,我已将存储库中的操作下的秘密值设置为
repository secrets
。
name: Deploy to Production
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Set up Docker
uses: docker/[email protected]
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/[email protected]
with:
context: .
push: true
tags: docker.pkg.github.com/${{ github.repository }}/app:${{ github.sha }}
build-args: |
NODE_VERSION=20
它在
Build and push Docker image
阶段失败并出现以下错误:
错误:未能解决:推送失败 docker.pkg.github.com//reponame/app:6e999cfdacd6dc6b0a0b1e910a5df587ff0e29d0: HEAD 请求的意外状态 https://docker.pkg.github.com/v2/***/reponame/app/blobs/sha256:b57f8774f8f3f8e4585beb859bb784b1cb1e558b851438ee332890b5f39f5aee: 401 未经授权错误:buildx 失败:错误:无法解决: 推失败 docker.pkg.github.com//reponame/app:6e999cfdacd6dc6b0a0b1e910a5df587ff0e29d0: HEAD 请求的意外状态 https://docker.pkg.github.com/v2/***/reponame/app/blobs/sha256:b57f8774f8f3f8e4585beb859bb784b1cb1e558b851438ee332890b5f39f5aee: 第401章 未经授权
为什么,我缺少什么授权?
“401 未经授权的错误” => 我会遇到问题:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
你确定他们是正确的吗?