docker-compose.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. version: "3.8"
  2. services:
  3. postgres:
  4. image: postgres:16-alpine
  5. container_name: finetune-postgres
  6. restart: unless-stopped
  7. environment:
  8. POSTGRES_DB: finetuning
  9. POSTGRES_USER: finetune
  10. POSTGRES_PASSWORD: finetune123
  11. volumes:
  12. - pgdata:/var/lib/postgresql/data
  13. ports:
  14. - "5432:5432"
  15. networks:
  16. - finetune-net
  17. backend:
  18. build:
  19. context: ./backend
  20. dockerfile: Dockerfile
  21. container_name: finetune-backend
  22. restart: unless-stopped
  23. ports:
  24. - "8010:8010"
  25. volumes:
  26. # 持久化数据和模型
  27. - ./backend/data:/root/Fine-tuning/backend/data
  28. env_file:
  29. - ./backend/.env.docker
  30. environment:
  31. - BACKEND_HOST=0.0.0.0
  32. - BACKEND_PORT=8010
  33. - DATABASE_URL=postgresql+asyncpg://finetune:finetune123@postgres:5432/finetuning
  34. # --- 分布式计算节点(可选) ---
  35. # 设置为 253 的 IP 即启用远程算力模式
  36. - COMPUTE_NODE_HOST=192.168.91.253
  37. - COMPUTE_NODE_SSH_PORT=22
  38. - COMPUTE_NODE_SSH_USER=root
  39. - COMPUTE_NODE_SSH_PASSWORD=ictrek
  40. # - COMPUTE_NODE_SSH_KEY=/root/.ssh/id_rsa # 优先用密钥,密码为备选
  41. - COMPUTE_NODE_PYTHON=/opt/conda/bin/python
  42. - COMPUTE_NODE_WORKDIR=/root/Fine-tuning/backend
  43. - COMPUTE_NODE_REMOTE_DATA_DIR=/root/Fine-tuning/backend/data
  44. - COMPUTE_NODE_REMOTE_ENV=production
  45. - COMPUTE_NODE_SSH_TIMEOUT=300
  46. depends_on:
  47. - postgres
  48. networks:
  49. - finetune-net
  50. frontend:
  51. build:
  52. context: ./frontend
  53. dockerfile: Dockerfile
  54. args:
  55. VITE_API_BASE_URL: /api/v1
  56. VITE_WS_BASE_URL: /ws
  57. container_name: finetune-frontend
  58. restart: unless-stopped
  59. ports:
  60. - "3000:80"
  61. depends_on:
  62. - backend
  63. networks:
  64. - finetune-net
  65. networks:
  66. finetune-net:
  67. driver: bridge
  68. volumes:
  69. pgdata: