Агент 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 ...
Надеюсь, это поможет!