mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-21 13:23:03 +01:00
* fix(provider): add debug logging Add a bunch of debug logging calls * return a swarm service pointer * revert to service list with status true * change trace to debug * --no-verify
113 lines
5.3 KiB
YAML
113 lines
5.3 KiB
YAML
version: "3.7"
|
|
|
|
services:
|
|
traefik:
|
|
image: traefik:v3.0.4
|
|
command:
|
|
- --experimental.localPlugins.sablier.moduleName=github.com/sablierapp/sablier
|
|
- --entryPoints.http.address=:80
|
|
- --providers.swarm=true
|
|
- --providers.swarm.refreshSeconds=1 # Default is 15s
|
|
- --providers.swarm.allowemptyservices=true
|
|
ports:
|
|
- target: 80
|
|
published: 8080
|
|
protocol: tcp
|
|
mode: host # Won't work in github actions otherwise
|
|
volumes:
|
|
- '/var/run/docker.sock:/var/run/docker.sock'
|
|
- '../../../..:/plugins-local/src/github.com/sablierapp/sablier'
|
|
deploy:
|
|
labels:
|
|
- traefik.http.services.traefik.loadbalancer.server.port=8080
|
|
restart_policy:
|
|
condition: none # Do not restart on setup failure
|
|
|
|
sablier:
|
|
image: sablierapp/sablier:local
|
|
command:
|
|
- start
|
|
- --provider.name=swarm
|
|
- --logging.level=debug
|
|
volumes:
|
|
- '/var/run/docker.sock:/var/run/docker.sock'
|
|
deploy:
|
|
labels:
|
|
- traefik.enable=true
|
|
# Dynamic Middleware
|
|
- traefik.http.middlewares.dynamic.plugin.sablier.names=DOCKER_SWARM_E2E_whoami
|
|
- traefik.http.middlewares.dynamic.plugin.sablier.sablierUrl=http://tasks.sablier:10000
|
|
- traefik.http.middlewares.dynamic.plugin.sablier.sessionDuration=1m
|
|
- traefik.http.middlewares.dynamic.plugin.sablier.dynamic.displayName=Dynamic Whoami
|
|
# Blocking Middleware
|
|
- traefik.http.middlewares.blocking.plugin.sablier.names=DOCKER_SWARM_E2E_whoami
|
|
- traefik.http.middlewares.blocking.plugin.sablier.sablierUrl=http://tasks.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_SWARM_E2E_whoami,DOCKER_SWARM_E2E_nginx
|
|
- traefik.http.middlewares.multiple.plugin.sablier.sablierUrl=http://tasks.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_SWARM_E2E_nginx
|
|
- traefik.http.middlewares.healthy.plugin.sablier.sablierUrl=http://tasks.sablier:10000
|
|
- traefik.http.middlewares.healthy.plugin.sablier.sessionDuration=1m
|
|
- traefik.http.middlewares.healthy.plugin.sablier.dynamic.displayName=Healthy Nginx
|
|
# Group Middleware
|
|
- traefik.http.middlewares.group.plugin.sablier.group=E2E
|
|
- traefik.http.middlewares.group.plugin.sablier.sablierUrl=http://tasks.sablier:10000
|
|
- traefik.http.middlewares.group.plugin.sablier.sessionDuration=1m
|
|
- traefik.http.middlewares.group.plugin.sablier.dynamic.displayName=Group E2E
|
|
- traefik.http.services.sablier.loadbalancer.server.port=10000
|
|
|
|
whoami:
|
|
image: acouvreur/whoami:v1.10.2
|
|
healthcheck:
|
|
test: [ "CMD", "curl", "-f", "http://localhost" ]
|
|
interval: 5s
|
|
deploy:
|
|
replicas: 0
|
|
labels:
|
|
- sablier.enable=true
|
|
- sablier.group=E2E
|
|
- traefik.enable=true
|
|
# If you do not use the swarm load balancer, traefik will evict the service from its pool
|
|
# as soon as the service is 0/0. If you do not set that, fallback to dynamic-config.yml file usage.
|
|
- traefik.docker.lbswarm=true
|
|
- traefik.http.routers.whoami-dynamic.middlewares=dynamic@swarm
|
|
- traefik.http.routers.whoami-dynamic.rule=PathPrefix(`/dynamic/whoami`)
|
|
- traefik.http.routers.whoami-dynamic.service=whoami
|
|
- traefik.http.routers.whoami-blocking.middlewares=blocking@swarm
|
|
- traefik.http.routers.whoami-blocking.rule=PathPrefix(`/blocking/whoami`)
|
|
- traefik.http.routers.whoami-blocking.service=whoami
|
|
- traefik.http.routers.whoami-multiple.middlewares=multiple@swarm
|
|
- traefik.http.routers.whoami-multiple.rule=PathPrefix(`/multiple/whoami`)
|
|
- traefik.http.routers.whoami-multiple.service=whoami
|
|
- traefik.http.routers.whoami-group.middlewares=group@swarm
|
|
- traefik.http.routers.whoami-group.rule=PathPrefix(`/group`)
|
|
- traefik.http.routers.whoami-group.service=whoami
|
|
- traefik.http.services.whoami.loadbalancer.server.port=80
|
|
|
|
nginx:
|
|
image: nginx:1.23.1
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost"]
|
|
interval: 5s
|
|
deploy:
|
|
replicas: 0
|
|
labels:
|
|
- sablier.enable=true
|
|
- sablier.group=E2E
|
|
- traefik.enable=true
|
|
# If you do not use the swarm load balancer, traefik will evict the service from its pool
|
|
# as soon as the service is 0/0. If you do not set that, fallback to dynamic-config.yml file usage.
|
|
- traefik.docker.lbswarm=true
|
|
- traefik.http.routers.nginx-multiple.middlewares=multiple@swarm
|
|
- traefik.http.routers.nginx-multiple.rule=PathPrefix(`/multiple/nginx`)
|
|
- traefik.http.routers.nginx-multiple.service=nginx
|
|
- traefik.http.routers.nginx-healthy.middlewares=healthy@swarm
|
|
- traefik.http.routers.nginx-healthy.rule=PathPrefix(`/healthy/nginx`)
|
|
- traefik.http.routers.nginx-healthy.service=nginx
|
|
- traefik.http.services.nginx.loadbalancer.server.port=80
|