Скопируйте файл на хост до того, как контейнер перестанет работать - PullRequest
0 голосов
/ 21 мая 2019

Я запускаю приложение Flask в док-контейнере, связываю его с контейнером postgres и тестирую с помощью pytest. Если я запускаю команду

docker run -it --env-file=.env --link postgres-test app pytest --cov=service . --cov-report html:cov_html

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

Мой текущий обходной путь ужасно хакерский, docker run -it --env-file=.env --link postgres-test app bash, затем запускаю pytest прямо в контейнере, и пока контейнер все еще работает, я docker cp в локальный каталог.

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

1 Ответ

1 голос
/ 21 мая 2019

Привет, с помощью докера вы можете написать собственный ENTRYPOINT и использовать том, чтобы после завершения теста сценарий конца точки входа скопировал cov_html в область с томом. Как то так

#!/bin/bash

#command to run tests

cp /location_to/cov_html /location_to/volume
...