1

我想配置一个管道来运行我的测试。测试在 docker-compose 文件中。在我的 Buildkite 代理中,我无法挂载单个文件。

我想挂载源目录和单个配置文件。我的 docker-compose 在其他环境中运行良好。

我应该怎么办?

例如:

 docker run -it --rm -v /test.sh:/test.sh busybox cat /test.sh
 cat: read error: Is a directory
4

1 回答 1

1

Docker 代理使用/buildkite它的 Docker 容器中的目录进行构建检查,但通常在 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 ...

希望有帮助!

于 2018-09-05T02:36:27.787 回答