Я создал веб-проект со следующей файловой структурой:
-root_folder/
-docker-compose.yml
-.git/
-backend/
-.dockerignore
-docker/
-dev.dockerfile
-frontend/
-.dockerignore
-docker/
-dev.dockerfile
Я запускаю приложение внешнего интерфейса (Angular) в Docker контейнере. Я также запускаю приложение бэкэнда (ExpressJS) в другом контейнере, но бэкэнд не имеет отношения к моей проблеме.
Я смонтировал том ./frontend в / app в контейнере, чтобы разрешить горячую перезагрузку.
Эта конфигурация работает для запуска Angular просто отлично. Однако при запуске Jest с флагом --watch выдает ошибку --watch is not supported without git/hg, please use --watchAll
Я вернулся в dockerfile и добавил:
RUN apk update -q && \
apk add -q git
Но это не решает проблему , Из всех исследований, которые я провел, похоже, проблема в том, что в режиме наблюдения Jest для обнаружения изменений каким-то образом используется git, но моя папка git не находится в подкаталоге 'frontend'.
I попытался изменить мой контейнер, чтобы вместо этого скопировать все файлы в / app / frontend, а затем также скопировать и смонтировать папку git в /app/.git, но это не дало результата.
Я делаю не хочу запускать Jest с --watchAll (но я проверил его, и он работает правильно). Есть предложения?
РЕДАКТИРОВАТЬ Ответили на мой вопрос. Я был на правильном пути с монтированием папки. git. Отсутствующим шагом была установка переменных среды GIT_WORK_TREE и GIT_DIR.