name: revoice services: app: build: context: . dockerfile: Dockerfile image: revoice:local container_name: revoice-app restart: unless-stopped init: true env_file: - .env environment: NODE_ENV: production PORT: "3000" ports: - "127.0.0.1:${REVOICE_HOST_PORT:-3210}:3000" 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: 15s timeout: 5s start_period: 10s retries: 3 read_only: true tmpfs: - /tmp:size=16m,mode=1777 cap_drop: - ALL security_opt: - no-new-privileges:true stop_grace_period: 10s