我想配置一个管道来运行我的测试。测试位于docker-compose文件中。在我的Buildkite代理中,我不能挂载单个文件。
我想装载源目录和单独的配置文件。我的docker-compose在其他环境中工作得很好。
我该怎么办?
例如:
docker run -it --rm -v /test.sh:/test.sh busybox cat /test.sh
cat: read error: Is a directory发布于 2018-09-05 10:36:28
Docker代理使用其Docker容器中的/buildkite目录进行构建签出,但该目录通常不存在于Docker主机的外部。因此,当您使用-v时,它会尝试从主机挂载/buildkite,而主机并不存在,因此您最终会得到一个挂载到/test.sh的空目录。
一种解决方法是在从主机到/buildkite的目录中装载,例如:
docker run \
-v /buildkite:/buildkite \
-v /var/run/docker.sock:/var/run/docker.sock \
buildkite/agent start ...然后,在您的构建中,您应该能够运行以下命令:
docker run -it --rm -v "$PWD/test.sh:/test.sh" busybox cat /test.sh($PWD将类似于/buildkite/builds/agent123/pipeline123)
如果您想要在主机上使用/buildkite以外的其他东西,例如/usr/local/var/buildkite-agent,您可以通过相同的方式挂载它,但您还需要配置代理以使用该路径:
docker run \
-v /usr/local/var/buildkite-agent:/usr/local/var/buildkite-agent: \
-v /var/run/docker.sock:/var/run/docker.sock \
-e BUILDKITE_BUILD_PATH=/usr/local/var/buildkite-agent/builds \
-e BUILDKITE_HOOKS_PATH=/usr/local/var/buildkite-agent/hooks \
-e BUILDKITE_PLUGINS_PATH=/usr/local/var/buildkite-agent/plugins \
buildkite/agent start ...希望这能有所帮助!
https://stackoverflow.com/questions/52157510
复制相似问题