我有一个通过 Dockerfile 指定的 Docker 容器,它必须与 -p
一起运行标志以便正常运行。在我的本地机器上,运行后
docker run -d -p 5000:5000 blagtagger:v0.4.3
端口映射显示为
0.0.0.0:5000->5000/tcp
一切顺利。现在,我需要将它部署在 AWS Elastic Beanstalk 上,所以我准备了我的
Dockerrun.aws.json
文件如下:{
"AWSEBDockerrunVersion": "1",
"Ports": [
{
"ContainerPort": 5000,
"HostPort": 5000
}
]
}
但是,容器端口似乎没有正确映射到主机端口。端口映射显示为
5000/tcp
.我如何要求 Beanstalk 将映射设置为
0.0.0.0:5000->5000/tcp
?
最佳答案
事实证明,没有优雅的方法来实现这一点。沿着答案here和 here ,我在名为 .ebextensions/01-commands.config
的文件中添加了以下内容:
commands:
00001_add_port_mapping:
cwd: /tmp
command: 'sed -i "s/docker run -d/docker run -p 5000:5000 -d/" /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh'
并丢弃了
Dockerrun.aws.json
文件。
关于amazon-web-services - AWS Elastic Beanstalk 上的 Docker 端口映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56875091/