【发布时间】:2016-10-11 10:46:08
【问题描述】:
我的应用程序分为两个不同的应用程序(微服务?)。一个作为 docker 容器部署到 CF,另一个作为常规 WAR 文件(grails 应用程序)部署。 docker 容器是一个 Python/Flask 应用程序,它公开了一个 REST API。 WebApp 使用这个 rest 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
然后我使用
推送war文件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
【问题讨论】:
标签: grails docker cloud-foundry