AWS Elastic Beanstalk 上的 Docker 端口映射

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

mom*_*i84 3

事实证明,没有优雅的方法可以实现这一点。根据此处此处的答案,我在名为的文件中添加了以下内容.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文件。