docker-compose.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. version: '3.8'
  2. services:
  3. db:
  4. image: postgres:16-alpine
  5. container_name: liaowang-db
  6. environment:
  7. POSTGRES_DB: ${DB_NAME:-liaowang_db}
  8. POSTGRES_USER: ${DB_USER:-liaowang}
  9. POSTGRES_PASSWORD: ${DB_PASSWORD:-liaowang_secret}
  10. ports:
  11. - "5433:5432"
  12. volumes:
  13. - postgres_data:/var/lib/postgresql/data
  14. healthcheck:
  15. test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-liaowang}"]
  16. interval: 10s
  17. timeout: 5s
  18. retries: 5
  19. web:
  20. build: .
  21. container_name: liaowang-web
  22. ports:
  23. - "5000:5000"
  24. environment:
  25. - DB_HOST=${DB_HOST}
  26. - DB_PORT=${DB_PORT:-5432}
  27. - DB_USER=${DB_USER}
  28. - DB_PASSWORD=${DB_PASSWORD}
  29. - DB_NAME=${DB_NAME}
  30. - SECRET_KEY=${SECRET_KEY:-change-me-to-a-random-secret}
  31. - JWT_SECRET_KEY=${JWT_SECRET_KEY:-jwt-secret-change-me-to-random-string}
  32. - SSO_BASE_URL=${SSO_BASE_URL:-http://192.168.92.61:8200}
  33. - SSO_CLIENT_ID=${SSO_CLIENT_ID}
  34. - SSO_CLIENT_SECRET=${SSO_CLIENT_SECRET}
  35. - SSO_REDIRECT_URI=${SSO_REDIRECT_URI:-http://localhost:5000/auth/callback}
  36. - SSO_FRONTEND_URL=${SSO_FRONTEND_URL:-http://localhost:5000}
  37. - SSO_SCOPE=${SSO_SCOPE:-email}
  38. - SSO_LOGOUT_REDIRECT_URL=${SSO_LOGOUT_REDIRECT_URL:-http://192.168.92.61:9200/login}
  39. - SAMPLE_CENTER_BASE_URL=${SAMPLE_CENTER_BASE_URL:-http://192.168.92.61}
  40. - SAMPLE_CENTER_APP_ID=${SAMPLE_CENTER_APP_ID}
  41. - SAMPLE_CENTER_APP_SECRET=${SAMPLE_CENTER_APP_SECRET}
  42. env_file:
  43. - .env
  44. restart: unless-stopped
  45. depends_on:
  46. db:
  47. condition: service_healthy
  48. # 健康检查
  49. healthcheck:
  50. test: ["CMD", "curl", "-f", "http://localhost:5000"]
  51. interval: 30s
  52. timeout: 10s
  53. retries: 3
  54. start_period: 15s
  55. volumes:
  56. postgres_data: