2014-11-24 4 views
2

Как скопировать файлы из контейнера докеров на главный компьютер во время команды docker build?Скопируйте файл из контейнера в хост во время процесса сборки

Как часть построения моего изображения докеров для моего приложения, я запускаю некоторые тесты внутри него, и я хотел бы скопировать результат тестового прогона в хост (который является сервером непрерывной интеграции), чтобы сделать некоторые сообщения.

+0

Почему бы просто не запустить тесты после сборки? – Bryan

+0

Зачем мне строить его, если тесты не проходят? –

+0

[Как скопировать файлы из файла docker на хост?] (Https://stackoverflow.com/q/33377022/6521116) –

ответ

1

Нет простого способа сделать это. Объемы создаются только во время выполнения. Вы можете извлечь его из файловой системы docker (например, my is/var/lib/docker/devicemapper/mnt/CONTAINER_ID/rootfs/PATH_TO_FILE), хотя нет никакого способа выяснить, когда ваш тестовый процесс будет завершен. Вы можете создать файл, когда он будет завершен, и сделать inotify, но это уродливо.

+0

ах, это грустно .. – govin

4

Я бы не запускал тесты во время сборки, это только увеличит размер вашего изображения. Я бы рекомендовал вам создать изображение, а затем запустить его, установив хост-хост в контейнер и изменив рабочий каталог на точку монтирования.

docker run -v `pwd`/results:/results -w /results -t IMAGE test_script