mom*_*i84 5 amazon-web-services docker amazon-elastic-beanstalk
我有一个通过 Dockerfile 指定的 Docker 容器,必须使用该-p标志运行才能正常运行。在我的本地机器上,运行后
docker run -d -p 5000:5000 blagtagger:v0.4.3
Run Code Online (Sandbox Code Playgroud)
端口映射显示为0.0.0.0:5000->5000/tcp,一切正常。
现在,我需要将其部署在 AWS Elastic Beanstalk 上,因此我准备了Dockerrun.aws.json如下文件:
{
"AWSEBDockerrunVersion": "1",
"Ports": [
{
"ContainerPort": 5000,
"HostPort": 5000
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是,容器端口似乎没有正确映射到主机端口。端口映射如图所示5000/tcp。
我如何要求 Beanstalk 将映射设置为0.0.0.0:5000->5000/tcp?
事实证明,没有优雅的方法可以实现这一点。根据此处和此处的答案,我在名为的文件中添加了以下内容.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'
Run Code Online (Sandbox Code Playgroud)
并丢弃了该Dockerrun.aws.json文件。
| 归档时间: |
|
| 查看次数: |
5438 次 |
| 最近记录: |