version: "3.8" services: db: image: postgres:16-alpine container_name: hyb-oa-trialrun-db restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} ports: - "5432:5432" volumes: - ./data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 10 server: build: context: ../.. dockerfile: deploy/trialrun/Dockerfile container_name: hyb-oa-trialrun-server restart: unless-stopped depends_on: db: condition: service_healthy environment: NODE_ENV: production APP_ORIGIN: ${APP_ORIGIN} JWT_SECRET: ${JWT_SECRET} DATABASE_URL: ${DATABASE_URL} STORAGE_DIR: ${STORAGE_DIR} HOST: ${HOST} PORT: ${PORT} COOKIE_SECURE: ${COOKIE_SECURE} SERVE_CLIENT_DIST: ${SERVE_CLIENT_DIST} CLIENT_DIST_DIR: ${CLIENT_DIST_DIR} RATE_LIMIT_ENABLED: ${RATE_LIMIT_ENABLED} RATE_LIMIT_LOGIN_MAX: ${RATE_LIMIT_LOGIN_MAX} RATE_LIMIT_LOGIN_WINDOW: ${RATE_LIMIT_LOGIN_WINDOW} OCR_PROVIDER: ${OCR_PROVIDER} OCR_MAX_ATTEMPTS: ${OCR_MAX_ATTEMPTS} OCR_POLL_CRON: ${OCR_POLL_CRON} OCR_BATCH_SIZE: ${OCR_BATCH_SIZE} OCR_LOCK_TTL_SECONDS: ${OCR_LOCK_TTL_SECONDS} OCR_TIMEOUT_MS: ${OCR_TIMEOUT_MS} TENCENT_SECRET_ID: ${TENCENT_SECRET_ID} TENCENT_SECRET_KEY: ${TENCENT_SECRET_KEY} TENCENT_OCR_REGION: ${TENCENT_OCR_REGION} DELEGATION_REVOKE_CRON: ${DELEGATION_REVOKE_CRON} JOB_DRIVER: ${JOB_DRIVER} JOBS_ENABLED: ${JOBS_ENABLED} PG_BOSS_SCHEMA: ${PG_BOSS_SCHEMA} ports: - "3000:3000" volumes: - ./data/storage:${STORAGE_DIR} worker: build: context: ../.. dockerfile: deploy/trialrun/Dockerfile container_name: hyb-oa-trialrun-worker restart: unless-stopped profiles: ["worker"] depends_on: db: condition: service_healthy command: ["npm", "run", "worker"] environment: NODE_ENV: production APP_ORIGIN: ${APP_ORIGIN} JWT_SECRET: ${JWT_SECRET} DATABASE_URL: ${DATABASE_URL} STORAGE_DIR: ${STORAGE_DIR} SERVE_CLIENT_DIST: "false" CLIENT_DIST_DIR: ${CLIENT_DIST_DIR} OCR_PROVIDER: ${OCR_PROVIDER} OCR_MAX_ATTEMPTS: ${OCR_MAX_ATTEMPTS} OCR_POLL_CRON: ${OCR_POLL_CRON} OCR_BATCH_SIZE: ${OCR_BATCH_SIZE} OCR_LOCK_TTL_SECONDS: ${OCR_LOCK_TTL_SECONDS} OCR_TIMEOUT_MS: ${OCR_TIMEOUT_MS} TENCENT_SECRET_ID: ${TENCENT_SECRET_ID} TENCENT_SECRET_KEY: ${TENCENT_SECRET_KEY} TENCENT_OCR_REGION: ${TENCENT_OCR_REGION} DELEGATION_REVOKE_CRON: ${DELEGATION_REVOKE_CRON} JOB_DRIVER: ${JOB_DRIVER} JOBS_ENABLED: "true" PG_BOSS_SCHEMA: ${PG_BOSS_SCHEMA} volumes: - ./data/storage:${STORAGE_DIR} init: build: context: ../.. dockerfile: deploy/trialrun/Dockerfile container_name: hyb-oa-trialrun-init depends_on: db: condition: service_healthy environment: NODE_ENV: production APP_ORIGIN: ${APP_ORIGIN} JWT_SECRET: ${JWT_SECRET} DATABASE_URL: ${DATABASE_URL} STORAGE_DIR: ${STORAGE_DIR} SERVE_CLIENT_DIST: ${SERVE_CLIENT_DIST} CLIENT_DIST_DIR: ${CLIENT_DIST_DIR} OCR_PROVIDER: ${OCR_PROVIDER} OCR_POLL_CRON: ${OCR_POLL_CRON} OCR_BATCH_SIZE: ${OCR_BATCH_SIZE} OCR_LOCK_TTL_SECONDS: ${OCR_LOCK_TTL_SECONDS} OCR_MAX_ATTEMPTS: ${OCR_MAX_ATTEMPTS} OCR_TIMEOUT_MS: ${OCR_TIMEOUT_MS} TENCENT_SECRET_ID: ${TENCENT_SECRET_ID} TENCENT_SECRET_KEY: ${TENCENT_SECRET_KEY} TENCENT_OCR_REGION: ${TENCENT_OCR_REGION} DELEGATION_REVOKE_CRON: ${DELEGATION_REVOKE_CRON} JOB_DRIVER: ${JOB_DRIVER} JOBS_ENABLED: ${JOBS_ENABLED} PG_BOSS_SCHEMA: ${PG_BOSS_SCHEMA} TRIALRUN_ADMIN_EMAIL: ${TRIALRUN_ADMIN_EMAIL} TRIALRUN_ADMIN_PHONE: ${TRIALRUN_ADMIN_PHONE} TRIALRUN_ADMIN_PASSWORD: ${TRIALRUN_ADMIN_PASSWORD} volumes: - ./data/storage:${STORAGE_DIR} entrypoint: ["sh", "-c"] command: > "cd /app/server && npm run prisma:migrate:deploy && npm run seed:config && npm run seed:trialrun" restart: "no"