#node.js #amazon-web-services #docker #environment-variables #amazon-elastic-beanstalk
#node.js #amazon-веб-сервисы #docker #переменные среды #amazon-elastic-beanstalk
Вопрос:
Для моей локальной среды разработки я использую файл .env, а затем ссылаюсь на различные переменные, такие как подключение к БД в моем узле.Например, приложение JS express process.env.DB_HOST
.
Однако, когда я развертываю свое приложение EB, я хотел бы проверить наличие переменной среды, которая определена только в переменных среды консоли EB. После определения его в консоли EB мое узловое приложение по-прежнему не может его прочитать — если console.log(process.env.MY_EB_CONSOLE_VARIABLE)
оно не определено.
Как же так? Что происходит?
Если это поможет, у меня есть dockerized node.js приложение, которое я развертываю в EB через интерфейс командной строки EB.
Спасибо
Ответ №1:
Хорошо, поэтому, когда вы устанавливаете переменные среды в консоли elastic beanstalk, создается файл .env. В вашем docker-compose.yml вам нужно будет ссылаться на этот файл .env.
Я ожидал, что переменные будут просто переданы в мой процесс узла, что неверно
В моем docker-compose.yml у меня уже был settings.env, поэтому я просто добавил файл .env следующим образом:
# docker-compose.yml
version: "3.7"
services:
myApp:
build:
context: .
env_file:
- settings.env
- .env
ports:
- '80:3000'