Назад | Перейти на главную страницу

Порт, предоставленный из образа Docker, не сопоставлен с хостом Elastic Beanstalk

Я создал среду AWS Elastic Beanstalk с балансировщиком нагрузки, настроенным на портах. 80 и 8080, Я также отключил прокси (изначально был Nginx). Я создал простое приложение Node.js и Dockerfile для него. Также я добавил файл Dockerrun.aws.json с содержанием:

{
  "AWSEBDockerrunVersion": "1",
  "Ports": [
    {
      "HostPort": "8080",
      "ContainerPort": "8080"
    }
  ]
}

У меня есть собственное изображение, нигде не опубликованное, поэтому я не упомянул Image раздел. После развертывания я вижу, что один контейнер Docker работает с одним портом 8080 открыт (как и ожидалось). Но система Elastic Beanstalk не перенаправляет этот порт на внутренний IP-адрес.

Что я делаю не так и как указать Elastic Beanstalk перенаправлять порт из контейнера на хост (я знаю, как это сделать вручную, но это не относится к Elastic Beanstalk)?

У меня была такая же проблема в контейнере рельсов (порт 3000 с использованием puma) по умолчанию рельсы сервер только связывает localhost к интерфейсу прослушивания, мне пришлось использовать -b возможность связать 0.0.0.0 и это решило проблему.

В ответ у меня нет такой же проблемы, потому что npm обслуживать пакет связывает все интерфейсы по умолчанию