ascii-art/docker-compose.yml

50 lines
1.6 KiB
YAML

services:
ascii-art:
container_name: ascii-art
build: .
restart: unless-stopped
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
read_only: true
tmpfs:
- /tmp
networks:
- traefik-public
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
# Primary domain
- traefik.http.routers.ascii-art.rule=Host(`ascii.jeffemmett.com`)
- traefik.http.routers.ascii-art.entrypoints=web
- traefik.http.routers.ascii-art.priority=130
- traefik.http.routers.ascii-art.service=ascii-art
# rSpace: root domain
- traefik.http.routers.rcreate.rule=Host(`rcreate.online`) || Host(`www.rcreate.online`)
- traefik.http.routers.rcreate.entrypoints=web
- traefik.http.routers.rcreate.priority=130
- traefik.http.routers.rcreate.service=ascii-art
# rSpace: wildcard subdomains ({space}.rcreate.online)
- traefik.http.routers.rcreate-wildcard.rule=HostRegexp(`{sub:[a-z0-9-]+}.rcreate.online`)
- traefik.http.routers.rcreate-wildcard.entrypoints=web
- traefik.http.routers.rcreate-wildcard.priority=100
- traefik.http.routers.rcreate-wildcard.service=ascii-art
# Service port
- traefik.http.services.ascii-art.loadbalancer.server.port=8000
healthcheck:
test: ["CMD-SHELL", "python3 -c 'import urllib.request; urllib.request.urlopen(\"http://127.0.0.1:8000/health\")'"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
deploy:
resources:
limits:
cpus: "2"
memory: 512M
networks:
traefik-public:
external: true