From e88242d9feed2bdd7fd7c18740b8e9472ebb7e2b Mon Sep 17 00:00:00 2001 From: Baptiste Bouchereau Date: Tue, 4 Feb 2020 23:00:49 +0100 Subject: [PATCH] Add more traefik v2.1 and v1.7 examples --- traefik-v2/README.md | 7 ---- traefik/README.md | 11 ++++++ .../traefik-v1.7-dashboard-https.yml | 15 +++----- ...traefik-v1.7-dashboard-with-basic-auth.yml | 1 + .../traefik-v1.7-dashboard.yml | 1 + traefik/traefik-v1.7-letsencrypt.yml | 35 ++++++++++++++++++ traefik/traefik-v1.7-nginx-backend-https.yml | 26 +++++++++++++ traefik/traefik-v1.7-nginx-backend.yml | 23 ++++++++++++ traefik/traefik-v1.7-swarm-mode.yml | 36 ++++++++++++++++++ .../traefik-v2.1-dashboard-https.yml | 22 +++++------ ...traefik-v2.1-dashboard-with-basic-auth.yml | 0 .../traefik-v2.1-dashboard.yml | 0 traefik/traefik-v2.1-letsencrypt.yml | 33 +++++++++++++++++ traefik/traefik-v2.1-nginx-backend-https.yml | 29 +++++++++++++++ traefik/traefik-v2.1-nginx-backend.yml | 22 +++++++++++ traefik/traefik-v2.1-swarm-mode copy.yml | 36 ++++++++++++++++++ traefik/traefik-v2.1-swarm-mode.yml | 37 +++++++++++++++++++ 17 files changed, 307 insertions(+), 27 deletions(-) delete mode 100644 traefik-v2/README.md create mode 100644 traefik/README.md rename traefik-v2/traefik-v1.7-nginx-backend.yml => traefik/traefik-v1.7-dashboard-https.yml (72%) rename {traefik-v2 => traefik}/traefik-v1.7-dashboard-with-basic-auth.yml (92%) rename {traefik-v2 => traefik}/traefik-v1.7-dashboard.yml (91%) create mode 100644 traefik/traefik-v1.7-letsencrypt.yml create mode 100644 traefik/traefik-v1.7-nginx-backend-https.yml create mode 100644 traefik/traefik-v1.7-nginx-backend.yml create mode 100644 traefik/traefik-v1.7-swarm-mode.yml rename traefik-v2/traefik-v2.1-nginx-backend.yml => traefik/traefik-v2.1-dashboard-https.yml (51%) rename {traefik-v2 => traefik}/traefik-v2.1-dashboard-with-basic-auth.yml (100%) rename {traefik-v2 => traefik}/traefik-v2.1-dashboard.yml (100%) create mode 100644 traefik/traefik-v2.1-letsencrypt.yml create mode 100644 traefik/traefik-v2.1-nginx-backend-https.yml create mode 100644 traefik/traefik-v2.1-nginx-backend.yml create mode 100644 traefik/traefik-v2.1-swarm-mode copy.yml create mode 100644 traefik/traefik-v2.1-swarm-mode.yml diff --git a/traefik-v2/README.md b/traefik-v2/README.md deleted file mode 100644 index d13c08a..0000000 --- a/traefik-v2/README.md +++ /dev/null @@ -1,7 +0,0 @@ - -docker-compose -f traefik-v1.7-dashboard.yml up -docker-compose -f traefik-v2.1-dashboard.yml up -docker-compose -f traefik-v1.7-dashboard-with-basic-auth.yml up -docker-compose -f traefik-v2.1-dashboard-with-basic-auth.yml up -docker-compose -f traefik-v1.7-nginx-backend.yml up -docker-compose -f traefik-v2.1-nginx-backend.yml up \ No newline at end of file diff --git a/traefik/README.md b/traefik/README.md new file mode 100644 index 0000000..cc1530f --- /dev/null +++ b/traefik/README.md @@ -0,0 +1,11 @@ +Traefik v1.7 vs v2.1 configurations +=================================== + +Some traefik configurations to see differences between v1.7 and v2.1 + +Usage +----- + +```bash +docker-compose -f traefik-v1.7-dashboard-https.yml up +``` diff --git a/traefik-v2/traefik-v1.7-nginx-backend.yml b/traefik/traefik-v1.7-dashboard-https.yml similarity index 72% rename from traefik-v2/traefik-v1.7-nginx-backend.yml rename to traefik/traefik-v1.7-dashboard-https.yml index e151471..8c4f8e7 100644 --- a/traefik-v2/traefik-v1.7-nginx-backend.yml +++ b/traefik/traefik-v1.7-dashboard-https.yml @@ -6,24 +6,21 @@ services: image: traefik:v1.7 ports: - 80:80 + - 443:443 command: - --entrypoints=Name:http Address::80 + - --entrypoints=Name:https Address::443 TLS - --docker + - --docker.watch - --docker.exposedbydefault=false - --logLevel=DEBUG - --api labels: + traefik.enable: 'true' traefik.port: 8080 traefik.frontend.rule: Host:traefik-ui.local - traefik.enable: 'true' traefik.frontend.auth.basic.users: traefik_user:$$apr1$$epoKf5li$$QfTMJZOCS/halv3CiIUEu0 + traefik.frontend.redirect.entryPoint: https + traefik.frontend.entryPoints: http,https volumes: - /var/run/docker.sock:/var/run/docker.sock - - nginx: - image: nginx:1.17.8-alpine - labels: - traefik.enable: 'true' - traefik.frontend.rule: Host:nginx.local - traefik.frontend.entryPoints: http - traefik.port: 80 diff --git a/traefik-v2/traefik-v1.7-dashboard-with-basic-auth.yml b/traefik/traefik-v1.7-dashboard-with-basic-auth.yml similarity index 92% rename from traefik-v2/traefik-v1.7-dashboard-with-basic-auth.yml rename to traefik/traefik-v1.7-dashboard-with-basic-auth.yml index 5a9a3b3..a5701b8 100644 --- a/traefik-v2/traefik-v1.7-dashboard-with-basic-auth.yml +++ b/traefik/traefik-v1.7-dashboard-with-basic-auth.yml @@ -17,5 +17,6 @@ services: traefik.frontend.rule: Host:traefik-ui.local traefik.enable: 'true' traefik.frontend.auth.basic.users: traefik_user:$$apr1$$epoKf5li$$QfTMJZOCS/halv3CiIUEu0 + traefik.frontend.entryPoints: http volumes: - /var/run/docker.sock:/var/run/docker.sock diff --git a/traefik-v2/traefik-v1.7-dashboard.yml b/traefik/traefik-v1.7-dashboard.yml similarity index 91% rename from traefik-v2/traefik-v1.7-dashboard.yml rename to traefik/traefik-v1.7-dashboard.yml index fa6a859..a958fc0 100644 --- a/traefik-v2/traefik-v1.7-dashboard.yml +++ b/traefik/traefik-v1.7-dashboard.yml @@ -16,5 +16,6 @@ services: traefik.port: 8080 traefik.frontend.rule: Host:traefik-ui.local traefik.enable: 'true' + traefik.frontend.entryPoints: http volumes: - /var/run/docker.sock:/var/run/docker.sock diff --git a/traefik/traefik-v1.7-letsencrypt.yml b/traefik/traefik-v1.7-letsencrypt.yml new file mode 100644 index 0000000..5242406 --- /dev/null +++ b/traefik/traefik-v1.7-letsencrypt.yml @@ -0,0 +1,35 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v1.7 + ports: + - 80:80 + - 443:443 + command: + - --entrypoints=Name:http Address::80 + - --entrypoints=Name:https Address::443 TLS + - --docker + - --docker.exposedbydefault=false + - --logLevel=DEBUG + - --acme.email=you@mail.com + - --acme.storage=/etc/traefik/acme.json + - --acme.entryPoint=http + - --acme.onHostRule=true + - --acme.httpchallenge.entrypoint=http + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - conf:/etc/traefik + + nginx: + image: nginx:1.17.8-alpine + labels: + traefik.enable: 'true' + traefik.frontend.rule: Host:nginx.local + traefik.frontend.entryPoints: http,https + traefik.frontend.redirect.entryPoint: https + traefik.port: 80 + +volumes: + conf: diff --git a/traefik/traefik-v1.7-nginx-backend-https.yml b/traefik/traefik-v1.7-nginx-backend-https.yml new file mode 100644 index 0000000..def2035 --- /dev/null +++ b/traefik/traefik-v1.7-nginx-backend-https.yml @@ -0,0 +1,26 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v1.7 + ports: + - 80:80 + - 443:443 + command: + - --entrypoints=Name:http Address::80 + - --entrypoints=Name:https Address::443 TLS + - --docker + - --docker.exposedbydefault=false + - --logLevel=DEBUG + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + nginx: + image: nginx:1.17.8-alpine + labels: + traefik.enable: 'true' + traefik.frontend.rule: Host:nginx.local + traefik.frontend.entryPoints: http,https + traefik.frontend.redirect.entryPoint: https + traefik.port: 80 diff --git a/traefik/traefik-v1.7-nginx-backend.yml b/traefik/traefik-v1.7-nginx-backend.yml new file mode 100644 index 0000000..627f9a0 --- /dev/null +++ b/traefik/traefik-v1.7-nginx-backend.yml @@ -0,0 +1,23 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v1.7 + ports: + - 80:80 + command: + - --entrypoints=Name:http Address::80 + - --docker + - --docker.exposedbydefault=false + - --logLevel=DEBUG + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + nginx: + image: nginx:1.17.8-alpine + labels: + traefik.enable: 'true' + traefik.frontend.rule: Host:nginx.local + traefik.frontend.entryPoints: http + traefik.port: 80 diff --git a/traefik/traefik-v1.7-swarm-mode.yml b/traefik/traefik-v1.7-swarm-mode.yml new file mode 100644 index 0000000..f4393fa --- /dev/null +++ b/traefik/traefik-v1.7-swarm-mode.yml @@ -0,0 +1,36 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v1.7 + ports: + - 80:80 + command: + - --entrypoints=Name:http Address::80 + - --docker.swarmMode + - --docker.network=traefik + - --docker.exposedbydefault=false + - --logLevel=DEBUG + volumes: + - /var/run/docker.sock:/var/run/docker.sock + networks: + - traefik + + nginx: + image: nginx:1.17.8-alpine + deploy: + labels: + traefik.enable: 'true' + traefik.frontend.rule: Host:nginx.local + traefik.frontend.entryPoints: http + traefik.port: 80 + networks: + - traefik + +networks: + + traefik: + driver: overlay + external: true + attachable: true diff --git a/traefik-v2/traefik-v2.1-nginx-backend.yml b/traefik/traefik-v2.1-dashboard-https.yml similarity index 51% rename from traefik-v2/traefik-v2.1-nginx-backend.yml rename to traefik/traefik-v2.1-dashboard-https.yml index cffac1f..028d3a4 100644 --- a/traefik-v2/traefik-v2.1-nginx-backend.yml +++ b/traefik/traefik-v2.1-dashboard-https.yml @@ -6,26 +6,26 @@ services: image: traefik:v2.1 ports: - 80:80 + - 443:443 command: - --entrypoints.http.address=:80 + - --entrypoints.https.address=:443 - --providers.docker.exposedByDefault=false - --log.level=DEBUG - --api=true - --api.dashboard=true labels: traefik.enable: 'true' + traefik.http.middlewares.traefik-dashboard-auth.basicauth.users: traefik_user:$$apr1$$epoKf5li$$QfTMJZOCS/halv3CiIUEu0 + traefik.http.middlewares.traefik-dashboard-redirect.redirectscheme.scheme: https + traefik.http.services.traefik-dashboard-service.loadbalancer.server.port: 9999 traefik.http.routers.traefik-dashboard-http-router.entrypoints: http traefik.http.routers.traefik-dashboard-http-router.rule: Host(`traefik-ui.local`) - traefik.http.routers.traefik-dashboard-http-router.service: api@internal - traefik.http.middlewares.traefik-dashboard-auth.basicauth.users: traefik_user:$$apr1$$epoKf5li$$QfTMJZOCS/halv3CiIUEu0 - traefik.http.routers.traefik-dashboard-http-router.middlewares: traefik-dashboard-auth + traefik.http.routers.traefik-dashboard-http-router.middlewares: traefik-dashboard-redirect + traefik.http.routers.traefik-dashboard-https-router.service: api@internal + traefik.http.routers.traefik-dashboard-https-router.entrypoints: https + traefik.http.routers.traefik-dashboard-https-router.tls: 'true' + traefik.http.routers.traefik-dashboard-https-router.rule: Host(`traefik-ui.local`) + traefik.http.routers.traefik-dashboard-https-router.middlewares: traefik-dashboard-auth volumes: - /var/run/docker.sock:/var/run/docker.sock - - nginx: - image: nginx:1.17.8-alpine - labels: - traefik.enable: 'true' - traefik.http.routers.nginx-http-router.entrypoints: http - traefik.http.routers.nginx-http-router.rule: Host(`nginx.local`) - traefik.http.services.nginx-service.loadbalancer.server.port: 80 diff --git a/traefik-v2/traefik-v2.1-dashboard-with-basic-auth.yml b/traefik/traefik-v2.1-dashboard-with-basic-auth.yml similarity index 100% rename from traefik-v2/traefik-v2.1-dashboard-with-basic-auth.yml rename to traefik/traefik-v2.1-dashboard-with-basic-auth.yml diff --git a/traefik-v2/traefik-v2.1-dashboard.yml b/traefik/traefik-v2.1-dashboard.yml similarity index 100% rename from traefik-v2/traefik-v2.1-dashboard.yml rename to traefik/traefik-v2.1-dashboard.yml diff --git a/traefik/traefik-v2.1-letsencrypt.yml b/traefik/traefik-v2.1-letsencrypt.yml new file mode 100644 index 0000000..539833c --- /dev/null +++ b/traefik/traefik-v2.1-letsencrypt.yml @@ -0,0 +1,33 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v2.1 + ports: + - 80:80 + - 443:443 + command: + - --entrypoints.http.address=:80 + - --entrypoints.https.address=:443 + - --providers.docker.exposedByDefault=false + - --log.level=DEBUG + - --certificatesResolvers.letsencrypt_resolver.acme.email=you@mail.com + - --certificatesResolvers.letsencrypt_resolver.acme.storage=/etc/traefik/acme.json + - --certificatesResolvers.letsencrypt_resolver.acme.httpChallenge.entryPoint=http + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + nginx: + image: nginx:1.17.8-alpine + labels: + traefik.enable: 'true' + traefik.http.services.nginx-service.loadbalancer.server.port: 80 + traefik.http.middlewares.nginx-redirect.redirectscheme.scheme: https + traefik.http.routers.nginx-http-router.entrypoints: http + traefik.http.routers.nginx-http-router.rule: Host(`nginx.local`) + traefik.http.routers.nginx-http-router.middlewares: nginx-redirect + traefik.http.routers.nginx-https-router.entrypoints: https + traefik.http.routers.nginx-https-router.tls: 'true' + traefik.http.routers.nginx-https-router.rule: Host(`nginx.local`) + traefik.http.routers.nginx-https-router.tls.certresolver: letsencrypt_resolver diff --git a/traefik/traefik-v2.1-nginx-backend-https.yml b/traefik/traefik-v2.1-nginx-backend-https.yml new file mode 100644 index 0000000..ab213e2 --- /dev/null +++ b/traefik/traefik-v2.1-nginx-backend-https.yml @@ -0,0 +1,29 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v2.1 + ports: + - 80:80 + - 443:443 + command: + - --entrypoints.http.address=:80 + - --entrypoints.https.address=:443 + - --providers.docker.exposedByDefault=false + - --log.level=DEBUG + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + nginx: + image: nginx:1.17.8-alpine + labels: + traefik.enable: 'true' + traefik.http.services.nginx-service.loadbalancer.server.port: 80 + traefik.http.middlewares.nginx-redirect.redirectscheme.scheme: https + traefik.http.routers.nginx-http-router.entrypoints: http + traefik.http.routers.nginx-http-router.rule: Host(`nginx.local`) + traefik.http.routers.nginx-http-router.middlewares: nginx-redirect + traefik.http.routers.nginx-https-router.entrypoints: https + traefik.http.routers.nginx-https-router.tls: 'true' + traefik.http.routers.nginx-https-router.rule: Host(`nginx.local`) diff --git a/traefik/traefik-v2.1-nginx-backend.yml b/traefik/traefik-v2.1-nginx-backend.yml new file mode 100644 index 0000000..cbe1246 --- /dev/null +++ b/traefik/traefik-v2.1-nginx-backend.yml @@ -0,0 +1,22 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v2.1 + ports: + - 80:80 + command: + - --entrypoints.http.address=:80 + - --providers.docker.exposedByDefault=false + - --log.level=DEBUG + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + nginx: + image: nginx:1.17.8-alpine + labels: + traefik.enable: 'true' + traefik.http.routers.nginx-http-router.entrypoints: http + traefik.http.routers.nginx-http-router.rule: Host(`nginx.local`) + traefik.http.services.nginx-service.loadbalancer.server.port: 80 diff --git a/traefik/traefik-v2.1-swarm-mode copy.yml b/traefik/traefik-v2.1-swarm-mode copy.yml new file mode 100644 index 0000000..30e54ac --- /dev/null +++ b/traefik/traefik-v2.1-swarm-mode copy.yml @@ -0,0 +1,36 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v2.1 + ports: + - 80:80 + command: + - --entrypoints.http.address=:80 + - --providers.docker.exposedByDefault=false + - --log.level=DEBUG + - --providers.docker.swarmMode=true + - --providers.docker.network=traefik + volumes: + - /var/run/docker.sock:/var/run/docker.sock + networks: + - traefik + + nginx: + image: nginx:1.17.8-alpine + labels: + traefik.enable: 'true' + traefik.http.routers.nginx-http-router.entrypoints: http + traefik.http.routers.nginx-http-router.rule: Host(`nginx.local`) + traefik.http.services.nginx-service.loadbalancer.server.port: 80 + networks: + - traefik + +networks: + + traefik: + driver: overlay + external: true + attachable: true + \ No newline at end of file diff --git a/traefik/traefik-v2.1-swarm-mode.yml b/traefik/traefik-v2.1-swarm-mode.yml new file mode 100644 index 0000000..0f19a3d --- /dev/null +++ b/traefik/traefik-v2.1-swarm-mode.yml @@ -0,0 +1,37 @@ +version: '3.7' + +services: + + traefik: + image: traefik:v2.1 + ports: + - 80:80 + command: + - --entrypoints.http.address=:80 + - --providers.docker.exposedByDefault=false + - --log.level=DEBUG + - --providers.docker.swarmMode=true + - --providers.docker.network=traefik + volumes: + - /var/run/docker.sock:/var/run/docker.sock + networks: + - traefik + + nginx: + image: nginx:1.17.8-alpine + deploy: + labels: + traefik.enable: 'true' + traefik.http.routers.nginx-http-router.entrypoints: http + traefik.http.routers.nginx-http-router.rule: Host(`nginx.local`) + traefik.http.services.nginx-service.loadbalancer.server.port: 80 + networks: + - traefik + +networks: + + traefik: + driver: overlay + external: true + attachable: true + \ No newline at end of file