Я пытаюсь создать контейнер docker для запуска модульных тестов, поскольку модульные тесты запускают деструктивные операции в файловой системе.
Модульные тесты написаны на языке Dart.
Я пытаюсь ускорить разработку моих модульных тестов.
Проблема в том, что изображение docker ДОБАВЛЯЕТ мои модульные тесты к контексту как часть всего моего проекта (что требуется).
После монтирования проекта контейнер docker должен получить зависимости проекта, выполнив:
RUN pub global activ - путь к ресурсу / dshell
Поскольку это Работа в сети может занять около минуты.
Когда я разрабатываю модульные тесты, эта минута или около того значительно замедляет взаимодействие с разработчиками.
Что я хочу docker сделать просто потяните в измененном модульном тесте. В настоящее время, если я изменяю модульный тест, Docker обнаруживает изменение в PATH и перестраивает весь контекст.
Как мне ускорить это? Можно ли как-то исключить модульные тесты в исходном контексте, а затем добавить их после выполнения глобальной строки pub?
Dockerfile
FROM google/dart
WORKDIR /
# Add the entire dshell project so we can run from the local filesystem
ADD . /dshell
# active the dart project and download any dependancies
RUN pub global activate --source path /dshell
# this is the unit test which lives in the project 'ADD'ed as '.'
# I thought this line might help but it didn't
ADD test_install/install_test.dart /dshell/test_install/install_test.dart
CMD []
ENTRYPOINT ["/usr/bin/dart", "/dshell/test_install/install_test.dart"]
~