我的Bamboo构建计划(在linux64代理上运行)有一个阶段,可以从我的GitHub仓库进行源代码检查,然后是一个用Dockerfile构建图像的阶段,如下所示: / p>
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守护程序"问题。提前感谢您的帮助!
答案 0 :(得分:1)
诀窍是使用Bamboo变量${bamboo_DOCKER_SIGNATURE}
而不是docker
。该变量表示使用特定主机 - 即docker -H <host address>
。