docker-compose.yml - поднимает фронт, бэк и базу данных
Одни и те же данные для подключения к БД фигурирует в файле docker-compose.yml и в конфиге бэка. Можно ли как-то создать один .env файл, доступ до которого будет у docker-compose.yml и у бэка (nest js).
Или я изначально не правильно подхожу к вопросу и нужно делать 2 разных docker-compose.yml (один для фронта, другой для бэка) и класть их в корень проекта?
Да, это правильно делать один docker-compose.yml для разворачивания всего проекта сразу.
Если рядом лежит файл с именем .env, то он будет прочитан docker-compose и использован для всех сервисов в файле. Но эти переменные надо будет явно описать в секции environment каждого сервиса, как-то так:
shurshur, спасибо, использовал env_file, но неправильно указал путь до env, теперь все в порядке). Возможно сможете подсказать еще с одним моментом: раньше использовал секцию command для запуска проекта с хот релоадом таким образом: command: npm run start:dev. Но так как теперь package.json и docker-compose.yml лежат в разных каталогах, докер не видит, что ему доступен npm run start:dev, не знаете, как это можно пофиксить?
Правильно не передавать данные для подключения в Compose и тянуть из отличного от .env файла через env_file:[] в сервисы (т.е. между ними легко могут быть общие).