80 lines
2.0 KiB
YAML
80 lines
2.0 KiB
YAML
version: "3"
|
|
|
|
services:
|
|
mybunker:
|
|
image: bunkerity/bunkerweb:1.5.4
|
|
ports:
|
|
- 80:8080 # required to resolve let's encrypt challenges
|
|
- 10000:10000 # app1 without SSL/TLS
|
|
- 10001:10001 # app1 with SSL/TLS
|
|
- 20000:20000 # app2 without SSL/TLS
|
|
- 20001:20001 # app2 with SSL/TLS
|
|
environment:
|
|
- MULTISITE=yes
|
|
- SERVER_NAME=app1.example.com app2.example.com # replace with your domains
|
|
- API_WHITELIST_IP=127.0.0.0/8 10.20.30.0/24
|
|
- SERVE_FILES=no
|
|
- DISABLE_DEFAULT_SERVER=yes
|
|
- AUTO_LETS_ENCRYPT=yes
|
|
- USE_CLIENT_CACHE=yes
|
|
- USE_GZIP=yes
|
|
- USE_REVERSE_PROXY=yes
|
|
- SERVER_TYPE=stream
|
|
- app1.example.com_REVERSE_PROXY_HOST=app1:9000
|
|
- app1.example.com_LISTEN_STREAM_PORT=10000
|
|
- app1.example.com_LISTEN_STREAM_PORT_SSL=10001
|
|
- app2.example.com_REVERSE_PROXY_HOST=app2:9000
|
|
- app2.example.com_LISTEN_STREAM_PORT=20000
|
|
- app2.example.com_LISTEN_STREAM_PORT_SSL=20001
|
|
labels:
|
|
- "bunkerweb.INSTANCE=yes" # required for the scheduler to recognize the container
|
|
networks:
|
|
- bw-universe
|
|
- bw-services
|
|
|
|
bw-scheduler:
|
|
image: bunkerity/bunkerweb-scheduler:1.5.4
|
|
depends_on:
|
|
- mybunker
|
|
environment:
|
|
- DOCKER_HOST=tcp://bw-docker-proxy:2375
|
|
volumes:
|
|
- bw-data:/data
|
|
networks:
|
|
- bw-universe
|
|
- bw-docker
|
|
|
|
bw-docker-proxy:
|
|
image: tecnativa/docker-socket-proxy:nightly
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
environment:
|
|
- CONTAINERS=1
|
|
- LOG_LEVEL=warning
|
|
networks:
|
|
- bw-docker
|
|
|
|
app1:
|
|
image: istio/tcp-echo-server:1.2
|
|
command: ["9000", "app1"]
|
|
networks:
|
|
- bw-services
|
|
|
|
app2:
|
|
image: istio/tcp-echo-server:1.2
|
|
command: ["9000", "app2"]
|
|
networks:
|
|
- bw-services
|
|
|
|
volumes:
|
|
bw-data:
|
|
|
|
networks:
|
|
bw-services:
|
|
bw-universe:
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: 10.20.30.0/24
|
|
bw-docker:
|