docker-compose-router.yaml
77 lines
| 2.0 KiB
| text/x-yaml
|
YamlLexer
r23 | version: '3.9' | ||
x-logging: &custom-logging | |||
# docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions | |||
# NOTE: loki logging driver ONLY works for host type networks... | |||
driver: loki | |||
options: | |||
loki-url: "http://127.0.0.1:3100/loki/api/v1/push" | |||
#loki-url: "http://loki:3100/loki/api/v1/push" | |||
loki-retries: "5" | |||
loki-timeout: "1s" | |||
loki-max-backoff: "800ms" | |||
## docker network create -d overlay lb-net | |||
services: | |||
traefik: | |||
image: traefik:v2.9.5 | |||
ports: | |||
# The HTTP port, exposed as http entrypoint | |||
- "80:80" | |||
# The HTTPS port, exposed as https entrypoint | |||
- "443:443" | |||
# The SSH port | |||
- "${RC_SSH_PORT}:${RC_SSH_PORT}" | |||
# The Web UI (enabled by --api.insecure=true) | |||
# uncomment to expose dashboard at port :7000 | |||
#- "7000:7000" | |||
volumes: | |||
# So that Traefik can listen to the Docker events | |||
- /var/run/docker.sock:/var/run/docker.sock | |||
- ./config/traefik:/etc/traefik | |||
deploy: | |||
placement: | |||
constraints: | |||
# limit swarm deploy to MANAGER only | |||
- node.role == manager | |||
networks: | |||
- rhodecode_network | |||
labels: | |||
- "traefik.enable=true" | |||
logging: | |||
*custom-logging | |||
portainer: | |||
# Run with COMPOSE_PROFILES=portainer | |||
# to access portainer set HEADER `X-Docker-Host=portainer` | |||
image: portainer/portainer-ce:latest | |||
restart: always | |||
volumes: | |||
- portainer_data:/data | |||
- /var/run/docker.sock:/var/run/docker.sock | |||
deploy: | |||
mode: replicated | |||
replicas: 1 | |||
placement: | |||
constraints: | |||
# limit swarm deploy to MANAGER only | |||
- node.role == manager | |||
networks: | |||
- rhodecode_network | |||
labels: | |||
- "traefik.enable=true" | |||
- "traefik.http.services.portainer.loadbalancer.server.port=9000" | |||
- "traefik.http.routers.portainer.entrypoints=https" | |||
- "traefik.http.routers.portainer.rule=Headers(`X-Docker-Host`, `portainer`)" | |||
profiles: | |||
["portainer"] | |||
volumes: | |||
portainer_data: | |||
external: true |