是否有可能配置dockercloud/haproxy多於一個後端服務但監聽不同的端口?我試圖在端口80上爲一個web前端獲得一個docker-compose配置,然後在8080上運行一個Spring Boot應用程序。dockercloud haproxy在不同的端口上有多個服務
默認情況下,haproxy顯示web和addressbook的鏈接容器(請參閱下面的.yml文件),但默認情況下它們都通過happroxy在端口80上公開,所以Spring Boot容器永遠不會收到流量8080.
該配置是否可能,或者我是否也需要運行2個不同的haproxy容器,一個用於Web,另一個用於REST後端服務?
這裏是我的搬運工,compose.yml至今:
version: '2'
#build:
# context: ./haproxy
# image: haproxy
# dockerfile: Dockerfile
services:
mongodata:
image: mongo:3.2
volumes:
- /data/db
entrypoint: /bin/bash
mongo:
image: mongo:3.2
depends_on:
- mongodata
volumes_from:
- mongodata
ports:
#only specify internal port, not external, so we can scale with docker-compose scale
- "27017"
addressbook:
image: addressbook
depends_on:
- mongo
environment:
- MONGODB_DB_NAME=addressbook
ports:
- "8080"
links:
- mongo
web:
image: docker-web-angularjs
ports:
- "80"
lb:
image: dockercloud/haproxy
#TODO: need to add an haproxy.cfg to configure for addressbook instances exposed behind 8080?
#or can be configured via container properties?
#image: haproxy
depends_on:
- addressbook
environment:
- STATS_PORT=1936
- STATS_AUTH="admin:password"
links:
- addressbook
- web
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 80:80
- 8080:8080
- 1936:1936