services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: fineness POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-fineness} POSTGRES_DB: fineness ports: - "${PG_BIND:-5434}:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U fineness"] interval: 5s timeout: 3s retries: 10 redis: image: redis:7-alpine restart: unless-stopped ports: - "${REDIS_BIND:-6380}:6379" volumes: - redisdata:/data worker: build: context: . dockerfile: apps/worker/Dockerfile restart: unless-stopped environment: DATABASE_URL: postgres://fineness:${POSTGRES_PASSWORD:-fineness}@postgres:5432/fineness REDIS_URL: redis://redis:6379 GITHUB_TOKENS: ${GITHUB_TOKENS} SOLANA_RPC_URL: ${SOLANA_RPC_URL:-https://api.mainnet-beta.solana.com} depends_on: postgres: condition: service_healthy redis: condition: service_started profiles: ["prod"] web: build: context: . dockerfile: apps/web/Dockerfile restart: unless-stopped environment: DATABASE_URL: postgres://fineness:${POSTGRES_PASSWORD:-fineness}@postgres:5432/fineness NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3000} ports: - "${WEB_BIND:-3000}:3000" depends_on: postgres: condition: service_healthy profiles: ["prod"] volumes: pgdata: redisdata: