49 lines
1.1 KiB
YAML
49 lines
1.1 KiB
YAML
name: roster-formatter
|
|
|
|
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
args:
|
|
APP_UID: "${ROSTER_UID:-1000}"
|
|
APP_GID: "${ROSTER_GID:-1000}"
|
|
image: roster-formatter:local
|
|
container_name: roster-formatter
|
|
restart: unless-stopped
|
|
init: true
|
|
ports:
|
|
- "127.0.0.1:${ROSTER_PORT:-8787}:8787"
|
|
environment:
|
|
ROSTER_OUTPUT_DIR: /app/output
|
|
ROSTER_RETENTION_MONTHS: "${ROSTER_RETENTION_MONTHS:-3}"
|
|
ROSTER_MAX_UPLOAD_MB: "${ROSTER_MAX_UPLOAD_MB:-20}"
|
|
ROSTER_ALLOWED_HOSTS: "${ROSTER_ALLOWED_HOSTS:-}"
|
|
TZ: "${TZ:-America/Chicago}"
|
|
volumes:
|
|
- ./output:/app/output:rw
|
|
read_only: true
|
|
tmpfs:
|
|
- /tmp:size=256m,mode=1777
|
|
cap_drop:
|
|
- ALL
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
stop_grace_period: 10s
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- python
|
|
- -c
|
|
- "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8787/health', timeout=3).read()"
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
networks:
|
|
- tabernet
|
|
|
|
networks:
|
|
tabernet:
|
|
external: true
|
|
name: tabernet
|