49 lines
1.4 KiB
YAML
49 lines
1.4 KiB
YAML
version: "3.9"
|
|
|
|
services:
|
|
serene-docs:
|
|
image: serenelang/serene-docs
|
|
environment:
|
|
USER_UID: 1100
|
|
USER_GID: 1100
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
networks:
|
|
- public_lb
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
deploy:
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.serene-lang.rule=Host(`serene-lang.org`)"
|
|
- "traefik.http.routers.serene-lang.entrypoints=websecure"
|
|
- "traefik.http.routers.serene-lang.tls=true"
|
|
- "traefik.http.routers.serene-lang.tls.certresolver=default"
|
|
- "traefik.http.services.serene-lang-web.loadbalancer.server.port=3000"
|
|
- "traefik.http.services.serene-lang-web.loadbalancer.server.scheme=http"
|
|
- "traefik.http.routers.serene-lang.service=serene-lang-web"
|
|
- "traefik.docker.network=public_lb"
|
|
- "traefik.http.middlewares.serene-lang-ratelimit.ratelimit.average=50"
|
|
- "traefik.http.middlewares.serene-lang-ratelimit.ratelimit.burst=10"
|
|
- "traefik.http.routers.serene-lang.middlewares=serene-lang-ratelimit"
|
|
mode: replicated
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
max_attempts: 3
|
|
update_config:
|
|
parallelism: 1
|
|
delay: 5s
|
|
order: stop-first
|
|
|
|
logging:
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
networks:
|
|
public_lb:
|
|
external: true
|
|
name: public_lb
|