# docker-compose.yml (已去掉 obsolete version 行) services: traefik: image: traefik:v3.5.3 container_name: traefik-reverse restart: always command: - "--log.level=INFO" - "--accesslog=true" - "--api.dashboard=true" - "--api.insecure=true" - "--ping=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=frontend" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.myresolver.acme.email=lyzeng@hzau.edu.cn" - "--certificatesresolvers.myresolver.acme.storage=/acme/acme.json" - "--certificatesresolvers.myresolver.acme.httpChallenge.entrypoint=web" - "--certificatesresolvers.myresolver.acme.caServer=https://acme-v02.api.letsencrypt.org/directory" ports: - "80:80" - "443:443" - "8080:8080" # Dashboard volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - acme-data:/acme environment: TZ: Asia/Shanghai networks: - frontend healthcheck: test: ["CMD", "traefik", "healthcheck", "--ping"] interval: 30s timeout: 5s retries: 3 volumes: acme-data: networks: frontend: driver: bridge external: true