Рекомендую посмотреть на контейнер
https://github.com/jwilder/nginx-proxy
Этот nginx умеет автоматически поднимать virtual hosts на основе переменных окружения заданных при запуске контейнера.
Вот реальный docker-compose.yml моей песочницы с конфлюэнсом и постгрессом.
переменные
VIRTUAL_HOST: 'confluence.local.net'
VIRTUAL_PORT: '8090'
заставят nginx-proxy создать соответствующий virt-host c редиректом в контейнер confluence , port 8080
version: '2'
services:
confluence:
image: q2digger/confluence:latest
container_name: confluence
hostname: confluence
volumes:
- app_data:/var/atlassian/application-data/confluence
restart: always
ports:
- 8090:8090
- 8091:8091
networks:
- confluence
- proxy
environment:
JVM_MINIMUM_MEMORY: '2048m'
JVM_MAXIMUM_MEMORY: '4096m'
CATALINA_CONNECTOR_PROXYNAME: 'confluence.local.net'
CATALINA_CONNECTOR_PROXYPORT: '443'
CATALINA_CONNECTOR_SCHEME: 'https'
VIRTUAL_HOST: 'confluence.local.net'
VIRTUAL_PORT: '8090'
proxy:
image: jwilder/nginx-proxy
ports:
- 0.0.0.0:80:80
- 0.0.0.0:443:443
volumes:
- ./confluence.local.net.conf:/etc/nginx/vhost.d/confluence.local.net:ro
- /var/run/docker.sock:/tmp/docker.sock
- ./certs/:/etc/nginx/certs:ro
networks:
- proxy
database:
image: atlassian/postgres:9.4
volumes:
- db_data:/var/lib/postgresql/data
networks:
- confluence
environment:
- DB_PASS=atlassian
- DB_NAME=confluence
- DB_USER=atlassian
volumes:
db_data:
app_data:
networks:
confluence:
proxy: