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