Файл
A .env
не гарантирует их установку во время выполнения.Файл .env запускается и читается пакетом dotenv
npm и на самом деле не имеет ничего общего с докером.Вы экспортировали переменные до запуска docker-compose build
?Так как ваш docker-compose использует переменные окружения, но, насколько я знаю, файл .env
работает только со временем выполнения узла.
Так что, если вы работаете в linux / mac, вы можете просто запустить export CONTAINER_ROOT=./docker-containers
(обратите внимание на отсутствие пробелов). Повторите это также для project_root.Это должно быть сделано в командной строке, из которой вы запускаете docker-compose build
.NB Переменные Env, установленные таким образом, не являются постоянными и сбрасываются после каждого перезапуска терминала.
Быстрое решение этой проблемы - просто жестко закодировать ее и посмотреть, правильно ли работают тома, как предполагалось, а затем внедрить тома.
Также вы можете использовать команды linux, такие как pwd
, чтобы получить корневой каталог документа, это может быть проще, чем пользовательская переменная env.
Также вы используете package-lock.json, которыйспецифично для npm -> yarn использует файл yarn.lock?Чтобы уменьшить количество вредоносных программ и размер док-контейнера, я бы предложил использовать npm run build
вместо установки и использования пряжи.Это, вероятно, проще и будет использовать ваш package-lock.json.
Надеюсь, это ответило на ваш вопрос!