我正在设置一个Github action来推送Docker镜像到Docker Hub,遵循Github官方README.md for docker/build-push-action@v2的步骤。
这是我在
我认为docker/login-action@v1没有使用在
有人对此有更深入的了解吗?
这是我在
.github/workflows/
目录中的action。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:
关键词后提供的用户名和密码。我非常困惑,因为这在我的分支上可行,不明白为什么with:
关键词发送了logout: true
关键字,而我没有设置它。有人对此有更深入的了解吗?
logout: true
,因此可能是默认设置:https://github.com/textbook/salary-stats/runs/1400126139?check_suite_focus=true,但推送仍然成功,我猜这是为Post Run清理步骤而设计的。您确定正在运行您认为应该运行的工作流吗? - jonrsharpe