команда переключения на основе переменной env узла для файла docker-compose.yml - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь разместить приложение, поэтому я создал сервер и папку клиента.В узле js папки сервера и клиенте он реагирует с помощью create-реакции-приложения.

Итак, для докера я создал два файла Docker в папке сервера и клиента.В корне проекта создан файл docker-compose.yml.

для локальной разработки, мне нужна возможность автоматической перезагрузки сервера, поэтому я поставил

command: nodemon index.js

в файле docker-compose.yml.Все работает нормально.когда я строю докер.Но когда я размещаю это приложение, мне нужно изменить его на

`command: node index.js`

Единственный способ, которым я думаю, это добавит переменную среды узла, когда я размещаю приложение, но проблема в том, что я могу получить доступ в index.jsпапки сервера, например

process.env.APPLICATION_ENVIRONMENT

, но как мне получить доступ к файлу docker-compose.yml?Поскольку я хочу использовать тот же файл docker-compose.yml для хостинга и заставить разработчика легко начать работу, имея возможность автоматической перезагрузки сервера.

Есть ли какой-нибудь другой лучший способ сделать это.

1 Ответ

0 голосов
/ 21 февраля 2019

docker-compose поддержка файлов подстановка переменных .Затем вы можете использовать это, чтобы сохранить и установить команду, которую вы хотите запустить непосредственно в файле docker-compose.

Например, образец docker-compose.yml:

version: "3"
services:
  server:
    build: ./server
    command: ${NODE_COMMAND:-nodemon} index.js

${NODE_COMMAND:-nodemon} по умолчанию будет nodemon, если в вашей оболочке нет переменной NODE_COMMAND.Вы можете переопределить это значение в производственной среде, указав значение NODE_COMMAND при запуске контейнеров, например:

$ NODE_COMMAND=node docker-compose up -d

В качестве альтернативы, на своем размещенном сервере вы можете создать .envфайл в том же каталоге, в котором вы запускаете команды docker-compose, например:

NODE_COMMAND=node

И docker-compose автоматически подставит значение в ваш файл композиции.См. Дополнительную информацию о замене переменных на связанной странице.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...