services: accounting-app: build: context: . dockerfile: Dockerfile args: NODE_IMAGE: ${NODE_IMAGE:-node} container_name: accounting-app restart: unless-stopped ports: - "${APP_PORT:-3000}:3000" environment: NODE_ENV: production PORT: 3000 TZ: Asia/Shanghai AUTH_USERNAME: ${AUTH_USERNAME:-admin} AUTH_PASSWORD: ${AUTH_PASSWORD:-lltzanhd} AUTH_SESSION_SECRET: ${AUTH_SESSION_SECRET:-change-this-session-secret} AUTH_COOKIE_SECURE: ${AUTH_COOKIE_SECURE:-false} volumes: - ./server/data:/app/server/data healthcheck: test: [ "CMD", "node", "-e", "fetch('http://127.0.0.1:3000/health').then((res) => process.exit(res.ok ? 0 : 1)).catch(() => process.exit(1))", ] interval: 30s timeout: 5s retries: 3 start_period: 20s