我正在运行buildbot,它是EC2计算机上的CI工具。它当前作为docker容器运行,一个用于buildbot master,一个用于buildbot worker。在buildbot worker中,我必须再次运行docker来构建镜像和运行容器。
在研究了如何最好地做到这一点之后,我将docker sock文件从主机安装到了buildbot worker容器。现在,从buildbot worker内部,我可以连接到主机docker守护程序并使用构建缓存。
现在的主要问题是在buildbot worker中,我有一个docker compose文件,对于一个服务,我正在像这样装载文件
./configs/my.cnf:/etc/my.cnf
但是失败了。还要做更多研究,这是因为configs/my.cnf
是相对于buildbot worker目录的,并且因为我正在使用主机docker守护程序,该主机通过主机路径解析文件,因此无法找到该文件。
我不知道如何最好地做到这一点。对于使用数据量有一些建议,但是我不确定如何最好地使用它们。
关于我们如何做到这一点的任何想法?
最佳答案
您对buildbot worker的创建有任何控制权吗?您可以控制buildbot worker目录吗?
export BUILD_BOT_DIR=$(mktemp -d) &&
docker container create -v /var/run/docker.sock:/var/run/docker.sock -v ${BUILD_BOT_DIR}:${BUILD_BOT_DIR} -e BUILD_BOT_DIR ...
在这种情况下,路径“./configs/my:conf”指向容器和主机上的相同文件。
关于docker - Docker内部的Docker中的卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50935235/