62 lines
1.8 KiB
YAML
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:
|