Skip to content

Instantly share code, notes, and snippets.

@Toanzzz
Last active August 12, 2020 08:11
Show Gist options
  • Save Toanzzz/aa0dc9df8827f0f46bc7d27632853383 to your computer and use it in GitHub Desktop.
Save Toanzzz/aa0dc9df8827f0f46bc7d27632853383 to your computer and use it in GitHub Desktop.
A Traefik config file to deploy it to Docker Swarm. Usage: `docker stack deploy --prune -c _dc/proxy.yml proxy`
version: "3.8"
volumes: { traefikCer }
networks: { default: { name: proxy, external: true } }
services:
app:
image: traefik:v2.2
ports: ["80:80", "443:443"]
command:
- --api.dashboard=true
- --providers.docker.swarmMode=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.web.http.redirections.entryPoint.to=websecure
- --entrypoints.web.http.redirections.entryPoint.scheme=https
- --entrypoints.websecure.address=:443
- --entrypoints.websecure.http.tls.certResolver=leResolver
- --certificatesresolvers.leResolver.acme.email=toan@farmerstud.io
- --certificatesresolvers.leResolver.acme.tlschallenge=true
- --certificatesresolvers.leResolver.acme.httpchallenge=true
- --certificatesresolvers.leResolver.acme.httpchallenge.entrypoint=web
- --certificatesresolvers.leResolver.acme.storage=/letsencrypt/acme.json
deploy:
placement: { constraints: ["node.role == manager"] }
resources: { limits: { cpus: "0.1", memory: 100MB } }
labels:
- traefik.enable=true
- traefik.http.routers.dashboard.rule=HostRegexp(`{subdomain:proxy}.{domain:.+}`)
- traefik.http.routers.dashboard.entrypoints=websecure
- traefik.http.routers.dashboard.service=api@internal
- traefik.http.services.dashboard.loadbalancer.server.port=9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefikCer:/letsencrypt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment