50 lines
1.6 KiB
YAML
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: "4"
|
|
memory: 1G
|
|
|
|
networks:
|
|
traefik-public:
|
|
external: true
|