Files
sablier/plugins/traefik/e2e/docker/docker-compose.yml
2024-10-01 17:30:14 -07:00

70 lines
3.2 KiB
YAML

version: "3.7"
services:
traefik:
image: traefik:v2.11.5
command:
- --experimental.localPlugins.sablier.moduleName=github.com/acouvreur/sablier
- --entryPoints.http.address=:80
- --providers.docker=true
- --providers.file.filename=/etc/traefik/dynamic-config.yml
ports:
- "8080:80"
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- '../../../..:/plugins-local/src/github.com/acouvreur/sablier'
- './dynamic-config.yml:/etc/traefik/dynamic-config.yml'
restart: "no"
sablier:
image: acouvreur/sablier:local
command:
- start
- --provider.name=docker
- --logging.level=trace
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
labels:
- traefik.enable=true
# Dynamic Middleware
- traefik.http.middlewares.dynamic.plugin.sablier.names=docker_classic_e2e-whoami-1
- traefik.http.middlewares.dynamic.plugin.sablier.sablierUrl=http://sablier:10000
- traefik.http.middlewares.dynamic.plugin.sablier.sessionDuration=1m
- traefik.http.middlewares.dynamic.plugin.sablier.dynamic.DisplayName=Dynamic Whoami
- traefik.http.middlewares.dynamic.plugin.sablier.dynamic.theme=hacker-terminal
# Blocking Middleware
- traefik.http.middlewares.blocking.plugin.sablier.names=docker_classic_e2e-whoami-1
- traefik.http.middlewares.blocking.plugin.sablier.sablierUrl=http://sablier:10000
- traefik.http.middlewares.blocking.plugin.sablier.sessionDuration=1m
- traefik.http.middlewares.blocking.plugin.sablier.blocking.timeout=30s
# Multiple Dynamic Middleware
- traefik.http.middlewares.multiple.plugin.sablier.names=docker_classic_e2e-whoami-1,docker_classic_e2e-nginx-1
- traefik.http.middlewares.multiple.plugin.sablier.sablierUrl=http://sablier:10000
- traefik.http.middlewares.multiple.plugin.sablier.sessionDuration=1m
- traefik.http.middlewares.multiple.plugin.sablier.dynamic.displayName=Multiple Whoami
# Healthy Middleware
- traefik.http.middlewares.healthy.plugin.sablier.names=docker_classic_e2e-nginx-1
- traefik.http.middlewares.healthy.plugin.sablier.sablierUrl=http://sablier:10000
- traefik.http.middlewares.healthy.plugin.sablier.sessionDuration=1m
- traefik.http.middlewares.healthy.plugin.sablier.dynamic.displayName=Healthy Nginx
whoami:
image: containous/whoami:v1.5.0
# Cannot use labels because as soon as the container is stopped, the labels are not treated by Traefik
# The route doesn't exist anymore. Use dynamic-config.yml file instead.
# labels:
# - traefik.enable
# - traefik.http.routers.whoami.rule=PathPrefix(`/whoami`)
# - traefik.http.routers.whoami.middlewares=ondemand
nginx:
image: nginx:1.27.0
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 5s
# Cannot use labels because as soon as the container is stopped, the labels are not treated by Traefik
# The route doesn't exist anymore. Use dynamic-config.yml file instead.
# labels:
# - traefik.enable
# - traefik.http.routers.nginx.rule=PathPrefix(`/nginx`)
# - traefik.http.routers.nginx.middlewares=ondemand