name: huiyu-official-site services: web: build: context: . dockerfile: Dockerfile image: huiyu-official-site:${IMAGE_TAG:-phase1} init: true restart: unless-stopped ports: - "${APP_BIND_IP:-127.0.0.1}:${APP_PORT:-3000}:3000" env_file: - .env.docker environment: NUXT_DATABASE_PATH: /app/data/db/huiyu.sqlite NUXT_PUBLIC_SITE_URL: ${SITE_URL:-http://localhost:3000} APP_VERSION: ${IMAGE_TAG:-phase1} volumes: - huiyu_data:/app/data - ${BACKUP_HOST_DIR:-./backups}:/app/offsite-backups read_only: true tmpfs: - /tmp:size=64m security_opt: - no-new-privileges:true stop_grace_period: 20s healthcheck: test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3000/api/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))"] interval: 10s timeout: 5s retries: 6 start_period: 20s volumes: huiyu_data: name: huiyu_official_site_data