Заставить EBS уважать открытые порты Dockerrun.aws.json - PullRequest
0 голосов
/ 28 декабря 2018

Короче говоря.Я борюсь с настройкой Rabbitmq одного экземпляра в EBS.Локально все работает как положено, и я могу подключиться к RabbitMQ через порт 5672.Когда я внедряю образ в EBS, кажется, что первый порт из Dockerrun.aws.json автоматически привязан к порту 80, поэтому amqp доступен через этот порт.

Есть ли хак, к которому я могу применитьправильно связать порт 5672 с 5672 хоста ec2?

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": []
}

1 Ответ

0 голосов
/ 28 декабря 2018

Взломать это очень легко.Просто выставьте случайный порт в качестве первой записи.Теперь другие порты правильно сопоставлены.

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