services: mysql: image: mysql:8 environment: MYSQL_DATABASE: envauth MYSQL_USER: envauth MYSQL_PASSWORD: envauth MYSQL_RANDOM_ROOT_PASSWORD: "yes" labels: - traefik.enable=false ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql phpmyadmin: image: phpmyadmin:5 depends_on: - mysql environment: PMA_HOST: mysql PMA_USER: envauth PMA_PASSWORD: envauth labels: - traefik.enable=true - traefik.http.routers.phpmyadmin.entrypoints=web,websecure - traefik.http.routers.phpmyadmin.rule=Host(`phpmyadmin.local.dev`) - traefik.http.routers.phpmyadmin.tls=true - traefik.http.services.phpmyadmin.loadbalancer.server.port=80 traefik: image: traefik:v2.11 labels: - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--entrypoints.web.http.redirections.entryPoint.to=websecure" - "--entrypoints.web.http.redirections.entryPoint.scheme=https" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.endpoint=unix:///var/run/docker.sock" - "--providers.file.directory=/etc/traefik/dynamic_conf" - "--api.insecure=true" - "--api.dashboard=true" ports: - "80:80" - "443:443" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - .:/certs:ro - ./traefik.yml:/etc/traefik/traefik.yml:ro - ./traefik-tls.yml:/etc/traefik/dynamic_conf/traefik-tls.yml:ro web: build: context: . depends_on: - mysql healthcheck: test: ["CMD", "curl", "-f", "http://localhost/health"] interval: 30s timeout: 10s retries: 3 start_period: 15s labels: - traefik.enable=true - traefik.http.routers.web.entrypoints=web,websecure - traefik.http.routers.web.rule=Host(`web.local.dev`) - traefik.http.routers.web.tls=true - traefik.http.services.web.loadbalancer.server.port=80 volumes: - .:/var/www/html volumes: mysql-data: