내 응용 프로그램은 두 개의 다른 응용 프로그램 (마이크로 서비스?)으로 분할됩니다. 하나는 도커 컨테이너로 CF에 배포되고 다른 컨테이너는 일반 WAR 파일 (grails 응용 프로그램)로 배포됩니다. 도커 컨테이너는 REST API를 제공하는 Python/Flask 애플리케이션입니다. WebApp이 나머지 API를 사용합니다.Cloud Foundry에서 두 응용 프로그램 연결
이전에이 애플리케이션을 두 개의 분리 된 도커 컨테이너로 사용하여 도커 --link flag
을 사용하여 실행했지만 지금은 Cloud Foundry에 이러한 애플리케이션을 배치하려고합니다. 도커 세계에서 저는 다음과 같이했습니다.
docker run -d --link python_container -p 8080:8080 --name war_container war_image
위의 명령은 python_container
의 IP 주소와 포트를 노출 될 수 war_container
에서 환경 변수를 만들 것입니다. 이러한 환경 변수를 사용하여 내 WAR 응용 프로그램에서 python_container
과 통신 할 수있었습니다. 이 환경 변수는 다음과 같이 보일 것이다 :
PYTHON_CONTAINER_PORT_5000_TCP_ADDR=<ipaddr>
PYTHON_CONTAINER_PORT_5000_TCP_PORT=<port>
질문
는 클라우드 파운드리에서 비슷한 일을 할 수 있습니까? 나는 도커 컨테이너를 이미 CF에 배치했다. 내 WAR
응용 프로그램을 연결하여 war 파일을로드하자마자 python_container
에 연결된 환경 변수가 만들어 지도록 만들려면 어떻게해야합니까?
현재 내가 사용 PCFDev하기 위해 고정 표시기 컨테이너를 밀어이 :
다음cf push my-app -o 192.168.0.102:5002/my/container:latest
내가 cf-sample
에 대한
cf push cf-sample -n cf-sample
manifest.yml를 사용하여 war 파일을 푸시는 다음과 같습니다
---
applications:
- name: cfsample
memory: 1G
instances: 1
path: target/cf-sample-0.1.war
buildpack: java_buildpack
services:
- mysql
- rabbitmq