Cloud foundry Cloud Foundry:如何在Docker映像中重新映射暴露的端口?

Cloud foundry Cloud Foundry:如何在Docker映像中重新映射暴露的端口?,cloud-foundry,Cloud Foundry,我想使用组织的云铸造服务运行RabbitMQ服务。我检查了RabbitMQ docker映像,发现以下端口已暴露: "ExposedPorts": { "25672/tcp": {}, "4369/tcp": {}, "5671/tcp": {}, "5672/tcp": {} }, 我通过在Cloud Foundry中安装该应用程序来启动它

我想使用组织的云铸造服务运行RabbitMQ服务。我检查了RabbitMQ docker映像,发现以下端口已暴露:

 "ExposedPorts": {
                "25672/tcp": {},
                "4369/tcp": {},
                "5671/tcp": {},
                "5672/tcp": {}
            },
我通过在Cloud Foundry中安装该应用程序来启动它,如下所示:
cf push-o rabbitmq rabbitmq-u进程

该应用程序将安装并启动。但是,它正在侦听端口5672。CF服务只允许我拥有10000到10999之间的端口。因此,我进入CF门户,删除HTTP路由,并在端口10123上为rabbitmq应用程序创建一个新的TCP路由


如何使用CF CLI将端口10123(外部端口)映射到端口5672(RabbitMQ,内部端口)?

有将具有特定外部端口的路由映射到特定内部应用程序端口的功能。这在这里的文档中有描述

目前,cf cli不直接支持该功能,因此需要使用
cf curl
手动发送一些请求

总的流程是这样的

  • 获取应用程序的guid
  • 为应用程序配置端口列表,
    cf curl/v2/apps/app-GUID-X PUT-d'{“端口”:[25672436956715672]}
  • 使用
    cf Map route my app example.com--port 10123将TCP路由映射到您的应用程序
  • 获取TCP路由对象的路由guid。运行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}更新路由映射。
  • 对于其他端口,可选择重复3-5次

  • 具有将具有特定外部端口的路由映射到特定内部应用程序端口的功能。这在这里的文档中有描述

    目前,cf cli不直接支持该功能,因此需要使用
    cf curl
    手动发送一些请求

    总的流程是这样的

  • 获取应用程序的guid
  • 为应用程序配置端口列表,
    cf curl/v2/apps/app-GUID-X PUT-d'{“端口”:[25672436956715672]}
  • 使用
    cf Map route my app example.com--port 10123将TCP路由映射到您的应用程序
  • 获取TCP路由对象的路由guid。运行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}更新路由映射。
  • 对于其他端口,可选择重复3-5次