Amazon web services AWS Elastic Beanstalk上的Docker端口映射

Amazon web services AWS Elastic Beanstalk上的Docker端口映射,amazon-web-services,docker,amazon-elastic-beanstalk,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上部署它,所以我准备了dockrun.AWS.json文件,如下所示: { "AWSEBDockerrunVersion": "1", "Ports":

我通过Dockerfile指定了一个Docker容器,该容器必须使用
-p
标志运行才能正常运行。在我的本地机器上,运行后

docker run -d -p 5000:5000 blagtagger:v0.4.3
端口映射显示为
0.0.0.0:5000->5000/tcp
,一切正常

现在,我需要在AWS Elastic Beanstalk上部署它,所以我准备了
dockrun.AWS.json
文件,如下所示:

{
  "AWSEBDockerrunVersion": "1",
  "Ports": [
    {
      "ContainerPort": 5000,
      "HostPort": 5000
    }
  ]
}
但是,容器端口似乎没有正确映射到主机端口。端口映射显示为
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'

并丢弃了
dockrun.aws.json
文件。

您是否仔细阅读了此文档?是的,这正是我从中获取上述dockrun示例的地方。不确定这是否重要,但我的Dockerfile也会声明EXPOSE 5000,否则部署将失败。我真的不知道问题出在哪里。
docker compose
文件没有解决您的问题吗?