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

标签 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 ?

最佳答案

事实证明,没有优雅的方法来实现这一点。沿着答案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文件。

关于amazon-web-services - AWS Elastic Beanstalk 上的 Docker 端口映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56875091/

相关文章:

amazon-web-services - Elastic Beanstalk 运行状况严重,失败并显示代码 400 -- 即使我可以访问我的网站

amazon-web-services - 适用于tensorflow和pymysql的Sagemaker内核

docker - 无法使用 dockerfile 在容器中移动文件

amazon-web-services - 从快照创建 Amazon RDS 实例

amazon-web-services - 重置 SQS MessageRetentionPeriod 属性不起作用

docker - docker run无法从cronjob工作

laravel - 运行Docker时,安装PHP8.1时返回错误

node.js - 子目录中的弹性 beantalk Node 应用程序

laravel - 通过 ebextentions 设置 laravel 存储目录权限

amazon-web-services - 如何通过 Cloudformation 为 Elastic Beanstalk Elastic Load Balancer 选择子网?