docker-compose.prod.yml 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. services:
  2. postgres:
  3. image: postgres:16-alpine
  4. restart: unless-stopped
  5. environment:
  6. POSTGRES_USER: xinghen
  7. POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
  8. POSTGRES_DB: xinghen
  9. healthcheck:
  10. test: ["CMD-SHELL", "pg_isready -U xinghen -d xinghen"]
  11. interval: 5s
  12. timeout: 5s
  13. retries: 20
  14. volumes:
  15. - postgres_data:/var/lib/postgresql/data
  16. networks:
  17. - internal
  18. app:
  19. image: xinghen-app:deploy
  20. pull_policy: never
  21. restart: unless-stopped
  22. depends_on:
  23. postgres:
  24. condition: service_healthy
  25. environment:
  26. PORT: 3001
  27. HOST: 0.0.0.0
  28. NODE_ENV: production
  29. DATABASE_URL: postgresql://xinghen:${POSTGRES_PASSWORD}@postgres:5432/xinghen
  30. UPLOAD_DIR: /app/uploads
  31. MAX_UPLOAD_MB: 100
  32. ADMIN_PHONE: ${ADMIN_PHONE}
  33. ADMIN_PASSWORD: ${ADMIN_PASSWORD}
  34. expose:
  35. - "3001"
  36. volumes:
  37. - uploads_data:/app/uploads
  38. networks:
  39. internal: {}
  40. proxy:
  41. aliases:
  42. - xinghen-app
  43. volumes:
  44. postgres_data:
  45. uploads_data:
  46. networks:
  47. internal:
  48. internal: true
  49. proxy:
  50. external: true
  51. name: meishi_ccdw_life_default