Cloud Foun dry: Как переназначить незащищенный порт в Docker образе? - PullRequest
0 голосов
/ 05 февраля 2020

Я бы хотел запустить службу RabbitMQ, используя службу Cloud Foun моей организации dry. Я проверил образ RabbitMQ docker и увидел, что открыты следующие порты:

 "ExposedPorts": {
                "25672/tcp": {},
                "4369/tcp": {},
                "5671/tcp": {},
                "5672/tcp": {}
            },

Я запускаю приложение, устанавливая его в Cloud Foun dry следующим образом: cf push -o rabbitmq RabbitMQ -u process.

Приложение устанавливается и запускается. Однако он прослушивает порт 5672. Служба CF позволяет мне иметь порты только между 10000 и 10999. Поэтому я go перехожу на портал CF, удаляю маршрут HTTP и создаю новый маршрут TCP на порту 10123 для rabbitmq. app.

Как мне go сопоставить порт 10123 (внешняя сторона) с портом 5672 (RabbitMQ, внутренняя сторона) с помощью CF CLI?

1 Ответ

2 голосов
/ 05 февраля 2020

Существует функция сопоставления маршрута с указанными c внешними портами с указанными c внутренними портами приложения. Это описано в документации здесь.

https://docs.cloudfoundry.org/devguide/custom-ports.html#procedure

В настоящее время функциональность непосредственно не поддерживается cf cli, поэтому вам необходимо использовать cf curl чтобы вручную отправить несколько запросов.

Общий процесс таков.

  1. Получите руководство вашего приложения.
  2. Настройте список портов для своего приложения, cf curl /v2/apps/APP-GUID -X PUT -d '{"ports": [25672, 4369, 5671, 5672]}'
  3. Сопоставьте маршрут TCP с вашим приложением с помощью cf map-route my-app example.com --port 10123.
  4. . Получите указатель маршрута вашего маршрутизатора TCP. Выполните cf curl /v2/routes?q=host:example.com.
  5. Обновите отображение маршрута с помощью cf curl /v2/route_mappings -X POST -d '{"app_guid": "APP-GUID from #1", "route_guid": "ROUTE-GUID from #4", "app_port": 5672}'
  6. При необходимости повторите 3-5 для дополнительных портов.

Надеюсь, это поможет!

...