version: '3' services: traefik: # The official v2.0 Traefik docker image image: traefik:v2.0 # Enables the web UI and tells Traefik to listen to docker command: #- "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.swarmMode=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entryPoints.websecure.address=:443" - "--certificatesresolvers.myhttpchallenge.acme.httpchallenge=true" - "--certificatesresolvers.myhttpchallenge.acme.httpchallenge.entrypoint=web" - "--certificatesresolvers.myhttpchallenge.acme.email=wuhanstudio@qq.com" - "--certificatesresolvers.myhttpchallenge.acme.storage=/letsencrypt/acme.json" ports: #- "8080:8080" - "80:80" - "443:443" volumes: # So that Traefik can listen to the Docker events - /var/run/docker.sock:/var/run/docker.sock - ./letsencrypt:/letsencrypt networks: - traefik-public deploy: placement: constraints: - node.role == manager networks: traefik-public: external: true