我正在设置一个 Github 操作,以按照 docker/build-push-action@v2 的 Github 官方 README.md 将 Docker 映像推送到 Docker Hub。
这是我在目录中的操作.github/workflows/
name: Publish Docker image
on:
push:
branches: master
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
-
name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: user/app:latest
-
name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
在测试了我的分支分支中的操作后,我将该分支合并到主存储库。令我惊讶的是,登录步骤失败,在 Github 操作日志中显示以下错误
Run docker/login-action@v1
with:
logout: true
Error: Username and password required
起初我以为我可能错误地定义了(甚至没有定义)主存储库中的秘密,但在使用 octokit 发出请求后,我发现它们就在那里
{
total_count: 2,
secrets: [
{
name: 'DOCKER_PASSWORD',
created_at: '2020-11-04T15:28:55Z',
updated_at: '2020-11-16T13:11:27Z'
},
{
name: 'DOCKER_USERNAME',
created_at: '2020-11-04T15:28:55Z',
updated_at: '2020-11-16T13:11:27Z'
}
]
}
我猜 docker/login-action@v1 没有使用 with:
关键字后提供的用户名和密码。我对此感到非常困惑,因为它确实在我的 fork 分支上工作,并且不明白为什么
with:
发送了关键字
logout: true
而不是我没有设置的。有人对此有更深入的了解吗?