Я хочу запустить докер в экземпляре EC2 с API AWS, и у меня есть Dockerrun.aws.json, как это:
{
"AWSEBDockerrunVersion": "1",
"Authentication": {
"Bucket": "<BUCKET>",
"Key": ".dockercfg"
},
"Image": {
"Name": "<NAME>:<TAG>",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "80"
},
{
"ContainerPort": "443"
}
]
}
Как вы можете видеть, у меня есть несколько портов, чтобы разоблачить, но эластичный бобовый шток выставляет только первый из них.
Я нашел это предложение в документации: вы можете указать несколько портов контейнера, но AWS Elastic Beanstalk использует только первый, чтобы подключить ваш контейнер к обратному прокси-серверу хоста и запросам маршрута из общедоступного Интернета.
Мой вопрос: почему?
У меня есть аутентификация, использующая протокол Oauth2, и я должен использовать протокол HTTPS для очевидных соображений безопасности. С этим ограничением я могу выбрать только HTTP или HTTPS, потому что я могу показывать только порт 80 или 443.
Я попытался переработать ebextensions, чтобы сделать nginx перенаправления с портами на уровне экземпляров EC2, но я потерпел неудачу. Как я могу сделать?
Этот пользователь stackoverflow имеет ту же проблему. Предоставление нескольких портов из Docker внутри эластичного бобового стека
Благодарим вас заранее