Я создал среду 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 обслуживать пакет связывает все интерфейсы по умолчанию