AWS Elastic Beanstalk上的Docker端口映射

时间:2019-07-03 17:11:51

标签: amazon-web-services docker amazon-elastic-beanstalk

我有一个通过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

1 个答案:

答案 0 :(得分:1)

事实证明,没有完美的方法可以做到这一点。按照答案herehere的含义,我在名为.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文件。