Files

62 lines
1.8 KiB
YAML

name: citygen
services:
app:
build: .
init: true
restart: unless-stopped
ports:
- "${CITYGEN_HOST_IP:-127.0.0.1}:${CITYGEN_PORT:-3000}:3000"
environment:
CITYGEN_BIND: 0.0.0.0:3000
CITYGEN_ADMIN_TOKEN: ${CITYGEN_ADMIN_TOKEN:-}
CITYGEN_AGENTS: ${CITYGEN_AGENTS:-1000}
CITYGEN_MAX_ROOMS: ${CITYGEN_MAX_ROOMS:-5}
CITYGEN_SAVE_INTERVAL: ${CITYGEN_SAVE_INTERVAL:-60}
CITYGEN_SAVE_QUOTA_BYTES: ${CITYGEN_SAVE_QUOTA_BYTES:-2147483648}
CITYGEN_SIM_THREADS: ${CITYGEN_SIM_THREADS:-4}
CITYGEN_MAX_GENERATION_KM2: ${CITYGEN_MAX_GENERATION_KM2:-25}
CITYGEN_MAX_BUILDINGS: ${CITYGEN_MAX_BUILDINGS:-10000}
CITYGEN_GENERATION_WORKERS: ${CITYGEN_GENERATION_WORKERS:-2}
volumes:
- cities:/app/public/cities
- saves:/app/data
stop_grace_period: 120s
mem_limit: ${CITYGEN_MEMORY:-4g}
cpus: ${CITYGEN_CPUS:-4}
pids_limit: 256
security_opt:
- no-new-privileges:true
cap_drop: [ALL]
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
prometheus:
image: prom/prometheus:v3.15.1
profiles: [monitoring]
restart: unless-stopped
depends_on:
app:
condition: service_healthy
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.retention.time=7d
- --storage.tsdb.retention.size=1GB
ports:
- "127.0.0.1:${CITYGEN_METRICS_PORT:-9090}:9090"
volumes:
- ./deploy/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- ./deploy/alerts.yml:/etc/prometheus/alerts.yml:ro
- metrics:/prometheus
mem_limit: 512m
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
volumes:
cities:
saves:
metrics: