首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Buildkite如何在docker agent中挂载单个文件

Buildkite如何在docker agent中挂载单个文件
EN

Stack Overflow用户
提问于 2018-09-04 08:54:40
回答 1查看 280关注 0票数 1

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

我想装载源目录和单独的配置文件。我的docker-compose在其他环境中工作得很好。

我该怎么办?

例如:

代码语言:javascript
复制
 docker run -it --rm -v /test.sh:/test.sh busybox cat /test.sh
 cat: read error: Is a directory
EN

回答 1

Stack Overflow用户

发布于 2018-09-05 10:36:28

Docker代理使用其Docker容器中的/buildkite目录进行构建签出,但该目录通常不存在于Docker主机的外部。因此,当您使用-v时,它会尝试从主机挂载/buildkite,而主机并不存在,因此您最终会得到一个挂载到/test.sh的空目录。

一种解决方法是在从主机到/buildkite的目录中装载,例如:

代码语言:javascript
复制
docker run \
  -v /buildkite:/buildkite \
  -v /var/run/docker.sock:/var/run/docker.sock \
  buildkite/agent start ...

然后,在您的构建中,您应该能够运行以下命令:

代码语言:javascript
复制
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,您可以通过相同的方式挂载它,但您还需要配置代理以使用该路径:

代码语言:javascript
复制
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 ...

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52157510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档