Установка переменных среды Elastic Beanstalk в консоли и передача их из развертывания

#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.

см. https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker.container.console.html#docker-env-cfg.env-variables

Я ожидал, что переменные будут просто переданы в мой процесс узла, что неверно

В моем docker-compose.yml у меня уже был settings.env, поэтому я просто добавил файл .env следующим образом:

 # docker-compose.yml

version: "3.7"
services:
  myApp:
    build:
      context: .
    env_file: 
      - settings.env
      - .env
    ports:
      - '80:3000'