services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: xinghen POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: xinghen healthcheck: test: ["CMD-SHELL", "pg_isready -U xinghen -d xinghen"] interval: 5s timeout: 5s retries: 20 volumes: - postgres_data:/var/lib/postgresql/data networks: - internal app: image: xinghen-app:deploy pull_policy: never restart: unless-stopped depends_on: postgres: condition: service_healthy environment: PORT: 3001 HOST: 0.0.0.0 NODE_ENV: production DATABASE_URL: postgresql://xinghen:${POSTGRES_PASSWORD}@postgres:5432/xinghen UPLOAD_DIR: /app/uploads MAX_UPLOAD_MB: 100 ADMIN_PHONE: ${ADMIN_PHONE} ADMIN_PASSWORD: ${ADMIN_PASSWORD} expose: - "3001" volumes: - uploads_data:/app/uploads networks: internal: {} proxy: aliases: - xinghen-app volumes: postgres_data: uploads_data: networks: internal: internal: true proxy: external: true name: meishi_ccdw_life_default