长话短说。我正在努力在 EBS 中设置单个实例Rabbitmq
。在本地,一切都按预期工作,我能够通过 5672 端口连接到 RabbitMQ。当我将映像部署到 EBS 时,似乎 Dockerrun.aws.json
的第一个端口自动绑定到端口 80,因此可以通过此端口访问amqp
。
是否有任何黑客可以应用于将 ec5672 主机的端口 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": []
}
黑客很容易
。只需将随机端口公开为第一个条目即可。现在,其他端口已正确映射。
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "some-image",
"Update": "true"
},
"Ports": [{
"HostPort": "80",
"ContainerPort": "80"
},
{
"HostPort": "5672",
"ContainerPort": "5672"
},
{
"HostPort": "15672",
"ContainerPort": "15672"
}
],
"Volumes": []
}