我想使用组织的Cloud Foundry服务运行RabbitMQ服务。我检查了RabbitMQ码头工人镜像,发现暴露了以下端口:
"ExposedPorts": {
"25672/tcp": {},
"4369/tcp": {},
"5671/tcp": {},
"5672/tcp": {}
},
我通过如下将其安装到Cloud Foundry中来启动该应用程序:cf push -o rabbitmq RabbitMQ -u process
。
该应用已安装并开始运行。但是,它正在侦听端口5672。CF服务仅允许我使用10000和10999之间的端口。因此,我进入CF门户,删除HTTP路由,并在10123端口上为Rabbitmq应用程序创建了新的TCP路由。
如何使用CF CLI将端口10123(外部)映射到端口5672(RabbitMQ,内部)?
具有将具有特定外部端口的路由映射到特定内部应用程序端口的功能。在此处的文档中对此进行了描述。
https://docs.cloudfoundry.org/devguide/custom-ports.html#procedure
目前,cf cli不直接支持该功能,因此您需要使用cf curl
手动发送一些请求。
一般流程是这个。
cf curl /v2/apps/APP-GUID -X PUT -d '{"ports": [25672, 4369, 5671, 5672]}'
cf map-route my-app example.com --port 10123
将TCP路由映射到您的应用程序。cf curl /v2/routes?q=host:example.com
。cf curl /v2/route_mappings -X POST -d '{"app_guid": "APP-GUID from #1", "route_guid": "ROUTE-GUID from #4", "app_port": 5672}'
更新路由映射希望有帮助!