gpt4 book ai didi

grails - 在Cloud Foundry中链接两个应用程序

转载 作者:行者123 更新时间:2023-12-02 14:29:45 27 4
gpt4 key购买 nike

我的应用程序分为两个不同的应用程序(微服务?)。一个作为docker容器部署到CF,另一个作为常规WAR文件(grails应用程序)部署。 docker容器是一个Python / Flask应用程序,它公开了REST API。 WebApp使用此其余API。

以前,我将这些应用程序作为两个单独的Docker容器使用,并将使用docker --link flag执行它们,但现在我希望将这些应用程序放在Cloud Foundry中。在docker世界中,我曾经做以下事情。

docker run -d --link python_container -p 8080:8080 --name war_container war_image

上面的命令将在 war_container中创建环境变量,该环境变量将公开 python_container的IP地址和端口。使用这些环境变量,我可以从WAR应用程序与 python_container通信。这些环境变量如下所示:
PYTHON_CONTAINER_PORT_5000_TCP_ADDR=<ipaddr>
PYTHON_CONTAINER_PORT_5000_TCP_PORT=<port>

问题

可以在Cloud Foundry中做类似的事情吗?我已经在CF中部署了docker容器。如何链接我的 WAR应用程序,以使创建环境变量的方式能够在我推送war文件后立即链接到 python_container

目前,我使用以下方法将Docker容器推送到PCFDev:
cf push my-app -o 192.168.0.102:5002/my/container:latest

然后我使用
cf push cf-sample -n cf-sample
cf-sample的manifest.yml为:
---
applications:
- name: cfsample
memory: 1G
instances: 1
path: target/cf-sample-0.1.war
buildpack: java_buildpack
services:
- mysql
- rabbitmq

最佳答案

如果您有多个Python应用程序实例,因此有多个IP /端口,那么Doc​​ker方式将如何工作?

对于PCF,您只需让Java应用程序“通过前门”与Python应用程序对话:https://my-python-app.local.pcfdev.io

您还可以尝试发现Python应用程序的IP和端口(例如,请参见https://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#CF-INSTANCE-IP),然后将这些值作为环境变量传递给Java应用程序,但这是一个非常脆弱的解决方案。

如果您对直接容器到容器联网感兴趣,则可能对阅读this proposal并提供反馈感兴趣。

关于grails - 在Cloud Foundry中链接两个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39975566/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com