【问题标题】:Force EBS to respect Dockerrun.aws.json exposed ports强制 EBS 尊重 Dockerrun.aws.json 暴露的端口
【发布时间】:2018-12-28 17:50:42
【问题描述】:

长话短说。我正在努力在 EBS 中设置 Rabbitmq 单个实例。本地一切都按预期工作,我可以通过 5672 端口连接到 RabbitMQ。当我将映像部署到 EBS 时,Dockerrun.aws.json 的第一个端口似乎自动绑定到端口 80,因此可以通过此端口访问 amqp

我可以应用任何技巧来正确地将 ec2 主机的端口 5672 绑定到 5672 吗?

Dockerfile

FROM rabbitmq:3.7.7-management-alpine

ADD rabbitmq.config /etc/rabbitmq/
ADD definitions.json /etc/rabbitmq/

EXPOSE 5672
EXPOSE 15672

CMD ["rabbitmq-server"]

Dockerrun.aws.json

{
    "AWSEBDockerrunVersion": "1",
    "Image": {
        "Name": "some-image-name",
        "Update": "true"
    },
    "Ports": [{
            "HostPort": "5672",
            "ContainerPort": "5672"
        },
        {
            "HostPort": "15672",
            "ContainerPort": "15672"
        }
    ],
    "Volumes": []
}

【问题讨论】:

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


    【解决方案1】:

    破解非常简单。只需将随机端口公开为第一个条目。 现在其他端口已正确映射。

    {
        "AWSEBDockerrunVersion": "1",
        "Image": {
            "Name": "some-image",
            "Update": "true"
        },
        "Ports": [{
                "HostPort": "80",
                "ContainerPort": "80"
            },
            {
                "HostPort": "5672",
                "ContainerPort": "5672"
            },
            {
                "HostPort": "15672",
                "ContainerPort": "15672"
            }
        ],
        "Volumes": []
    }
    

    【讨论】:

    • 如果我能支持你一千次,我会的。这就是答案。
    猜你喜欢
    • 2018-09-03
    • 2021-12-16
    • 1970-01-01
    • 2019-10-24
    • 2020-02-22
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多