Скопируйте файл из контейнера на хост в процессе сборки

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

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


person govin    schedule 24.11.2014    source источник
comment
Почему бы просто не запустить тесты после сборки?   -  person Bryan    schedule 25.11.2014
comment
Зачем мне его строить, если тесты не проходят?   -  person Jonathan P. Diaz    schedule 13.09.2017
comment
comment
Вы нашли решение своей проблемы?   -  person yu.pitomets    schedule 20.03.2018


Ответы (2)


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

docker run -v `pwd`/results:/results -w /results -t IMAGE test_script
person Javier Castellanos    schedule 25.11.2014

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

person seanmcl    schedule 24.11.2014