Skip to content

Instantly share code, notes, and snippets.

@kjanshair
Last active December 19, 2023 00:22
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kjanshair/539812fcd11ac569e04b2676377c9a83 to your computer and use it in GitHub Desktop.
Save kjanshair/539812fcd11ac569e04b2676377c9a83 to your computer and use it in GitHub Desktop.
docker-compose Traefik
version: "3.3"
services:
traefik:
image: traefik:latest
container_name: traefik
environment:
# COMMON
- TRAEFIK_API_INSECURE=true # Enable Traefik dashboard
- TRAEFIK_PROVIDERS_DOCKER=true # Enable Docker provider
- TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT=true # Expose containers by default
# ENTRYPOINTS
- TRAEFIK_ENTRYPOINTS_WEB_ADDRESS=:80
- TRAEFIK_ENTRYPOINTS_WEBSECURE_ADDRESS=:443
# REDIRECTIONS TO HTTPS
- TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_TO=websecure
- TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_SCHEME=https
- TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_PERMANENT=true
# LOGGING
- TRAEFIK_LOG_LEVEL=INFO # Set Log level to INFO
- TRAEFIK_ACCESSLOG=true # Enable access logs
# TRACING
- TRAEFIK_TRACING=true # Enable tracing
- TRAEFIK_TRACING_JAEGER_SAMPLINGPARAM=0 # Set the Jaeger sampling parameter
- TRAEFIK_TRACING_JAEGER_TRACECONTEXTHEADERNAME=X-Request-ID # Set the header to use for the X-Request-ID
# CERTIFICATES
- TRAEFIK_CERTIFICATESRESOLVERS_FLASK_ACME_TLSCHALLENGE=true # Use TLS challenge
- TRAEFIK_CERTIFICATESRESOLVERS_FLASK_ACME_EMAIL=<email-address>
- TRAEFIK_CERTIFICATESRESOLVERS_FLASK_ACME_STORAGE=/letsencrypt/acme.json
ports:
- 80:80
- 443:443
- 8080:8080 # Traefik Dashboard
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
logging:
options:
max-size: 50m
whoami:
image: traefik/whoami:latest
container_name: whoami
labels:
- traefik.enable=true
- traefik.http.routers.flask.entrypoints=websecure
- traefik.http.routers.whoami.rule=Host(`whoami.localhost`)
- traefik.http.routers.whoami.entrypoints=websecure
- traefik.http.routers.whoami.entrypoints=web
- traefik.http.routers.whoami.tls.certresolver=whoami
# - traefik.http.services.whoami.loadbalancer.server.port=5000. # Service Port
networks:
default:
name: isolated_network
external: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment