100 lines
2.5 KiB
YAML
100 lines
2.5 KiB
YAML
version: '3.8'
|
|
|
|
|
|
services:
|
|
consul:
|
|
image: consul
|
|
restart: always
|
|
container_name: consul
|
|
command: consul agent -server -dev -client=0.0.0.0 -ui -bootstrap -log-level warn -datacenter dev
|
|
environment:
|
|
SERVICE_8400_NAME: consul
|
|
SERVICE_8500_NAME: consul
|
|
SERVICE_8600_NAME: consul
|
|
SERVICE_8301_NAME: consul
|
|
SERVICE_8300_NAME: consul
|
|
SERVICE_8302_NAME: consul
|
|
ports:
|
|
- "8400:8400"
|
|
- "8500:8500"
|
|
- "8600:8600/udp"
|
|
expose:
|
|
- "8500"
|
|
networks:
|
|
- inbound
|
|
labels:
|
|
- "traefik.docker.network=inbound"
|
|
- "traefik.http.routers.consul.rule=Host(`consul.docker.localhost`)"
|
|
- "traefik.http.routers.consul.service=consul"
|
|
- "traefik.http.services.consul.loadbalancer.server.port=8500"
|
|
|
|
|
|
registrator:
|
|
restart: always
|
|
container_name: registrator
|
|
depends_on:
|
|
- consul
|
|
image: gliderlabs/registrator:master
|
|
command: -ttl=120 -ttl-refresh=10 -cleanup=true -resync=10 -internal consul://consul:8500
|
|
volumes:
|
|
- /var/run/docker.sock:/tmp/docker.sock
|
|
networks:
|
|
- inbound
|
|
links:
|
|
- consul
|
|
environment:
|
|
SERVICE_NAME: registrator
|
|
|
|
portainer:
|
|
restart: always
|
|
container_name: portainer
|
|
image: portainer/portainer-ce:latest
|
|
command: -H unix:///var/run/docker.sock
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ./storage/portainer:/data
|
|
networks:
|
|
- inbound
|
|
labels:
|
|
- "traefik.docker.network=inbound"
|
|
- "traefik.http.routers.portainer.rule=Host(`portainer.docker.localhost`)"
|
|
- "traefik.http.routers.portainer.service=portainer"
|
|
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
|
|
|
traefik:
|
|
image: traefik:latest
|
|
container_name: traefik
|
|
restart: always
|
|
networks:
|
|
- traefik
|
|
- inbound
|
|
volumes:
|
|
- ./configs/traefik.yml:/etc/traefik/traefik.yml
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
ports:
|
|
- target: 80
|
|
published: 80
|
|
mode: host
|
|
- target: 443
|
|
published: 443
|
|
mode: host
|
|
- target: 8080
|
|
published: 8090
|
|
protocol: tcp
|
|
mode: ingress
|
|
labels:
|
|
- "traefik.http.routers.api.rule=Host(`traefik.docker.localhost`)"
|
|
- "traefik.http.routers.api.service=api@internal"
|
|
|
|
|
|
networks:
|
|
traefik:
|
|
driver: bridge
|
|
name: traefik
|
|
inbound:
|
|
driver: bridge
|
|
name: inbound
|
|
|
|
configs:
|
|
traefik_config:
|
|
file: ./configs/traefik.yml |