我的應用程序分爲兩個不同的應用程序(微服務?)。一個部署到CF作爲碼頭容器,另一個部署爲常規WAR文件(grails應用程序)。 docker容器是一個公開REST API的Python/Flask應用程序。 WebApp使用這個剩餘的API。在Cloud Foundry中鏈接兩個應用程序
此前,我將這些應用程序作爲兩個獨立的docker容器,並使用docker --link flag
執行它們,但現在我正在將這些應用程序放在Cloud Foundry中。在碼頭世界,我曾經做過以下事情。
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
的環境變量。
目前我推泊塢窗容器使用到PCFDev此:
cf push my-app -o 192.168.0.102:5002/my/container:latest
然後我把使用
cf push cf-sample -n cf-sample
的manifest.yml爲cf-sample
戰爭文件爲:
---
applications:
- name: cfsample
memory: 1G
instances: 1
path: target/cf-sample-0.1.war
buildpack: java_buildpack
services:
- mysql
- rabbitmq