我的 Bamboo 构建计划(在 linux64 代理上运行)有一个阶段可以从我的 GitHub 存储库中检查源代码,然后有一个阶段可以使用该阶段构建图像 Dockerfile ,看起来像这样:
set -o xtrace
set -o errexit
${bamboo_DOCKER_SIGNATURE} build ${bamboo_DOCKER_BUILD_EXTRAS} -t myname:${bamboo_buildNumber} -f Dockerfile .
我想要的下一阶段是将此图像推送到我的 Docker 注册表(在 Quay.io 上)的脚本。我目前拥有的脚本如下所示,但构建失败并显示错误“无法连接到 Docker 守护进程。docker 守护进程是否在此主机上运行?”。
set -o xtrace
set -o errexit
# service docker start # commented out b/c this did not solve the docker daemon issue
# This is where the build fails:
docker login -e="." -u=${bamboo.QUAY_ROBOT_name} -p=${bamboo.QUAY_ROBOT_token} quay.io
# Push the image to 'my_repo' in the Quay.io organization 'my_team', with tag 'bamboo_build'
docker push quay.io/my_team/my_repo:bamboo_build${bamboo_buildNumber}
FWIW 相同的登录命令在我的本地命令行中按预期工作。我该如何补救?此外,使用 Bamboo 的内置 Docker 任务不起作用——它无法登录注册表,但由于某种原因没有“docker daemon”问题。提前感谢您的帮助!
最佳答案
技巧是使用 Bamboo 变量 ${bamboo_DOCKER_SIGNATURE}
而不是 docker
.此变量表示使用特定主机——即 docker -H <host address>
.
关于docker - Bamboo "cannot connect to Docker daemon",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37993792/