name: shd-build-stage services: app: image: ${SHD_IMAGE:-shd-build-stage:local} restart: unless-stopped init: true environment: INFISICAL_PROJECT_ID: 2ee94b27-e599-4194-9797-3372d42e53f6 INFISICAL_ENVIRONMENT: staging INFISICAL_RUNTIME_SCOPE: app INFISICAL_UNIVERSAL_AUTH_CLIENT_ID_FILE: /run/secrets/infisical_client_id INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET_FILE: /run/secrets/infisical_client_secret SHD_BUILD_NUMBER: ${SHD_BUILD_NUMBER:-0} SHD_COMMIT_SHA: ${SHD_COMMIT_SHA:-} ports: - '0.0.0.0:${SHD_STAGE_PORT:-5569}:3000' volumes: - shd_stage_data:/app/data secrets: - source: infisical_app_client_id target: infisical_client_id uid: '0' gid: '0' mode: 0400 - source: infisical_app_client_secret target: infisical_client_secret uid: '0' gid: '0' mode: 0400 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 retries: 8 start_period: 30s stop_grace_period: 30s scheduler: image: ${SHD_IMAGE:-shd-build-stage:local} restart: unless-stopped init: true command: - scheduler environment: INFISICAL_PROJECT_ID: 2ee94b27-e599-4194-9797-3372d42e53f6 INFISICAL_ENVIRONMENT: staging INFISICAL_RUNTIME_SCOPE: scheduler INFISICAL_UNIVERSAL_AUTH_CLIENT_ID_FILE: /run/secrets/infisical_client_id INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET_FILE: /run/secrets/infisical_client_secret secrets: - source: infisical_scheduler_client_id target: infisical_client_id uid: '0' gid: '0' mode: 0400 - source: infisical_scheduler_client_secret target: infisical_client_secret uid: '0' gid: '0' mode: 0400 depends_on: app: condition: service_healthy stop_grace_period: 30s volumes: shd_stage_data: name: shd-build-stage-data secrets: infisical_app_client_id: file: .infisical.app.client-id infisical_app_client_secret: file: .infisical.app.client-secret infisical_scheduler_client_id: file: .infisical.scheduler.client-id infisical_scheduler_client_secret: file: .infisical.scheduler.client-secret