version: "3.8" services: postgres: image: docker.m.daocloud.io/library/postgres:16-alpine container_name: finetune-postgres restart: unless-stopped environment: POSTGRES_DB: finetuning POSTGRES_USER: finetune POSTGRES_PASSWORD: finetune123 volumes: - pgdata:/var/lib/postgresql/data ports: - "5432:5432" networks: - finetune-net backend: build: context: ./backend dockerfile: Dockerfile container_name: finetune-backend restart: unless-stopped ports: - "8010:8010" volumes: # 持久化数据和模型 - ./backend/data:/root/Fine-tuning/backend/data env_file: - ./backend/.env.docker environment: - BACKEND_HOST=0.0.0.0 - BACKEND_PORT=8010 - DATABASE_URL=postgresql+asyncpg://finetune:finetune123@postgres:5432/finetuning # --- 分布式计算节点(可选) --- # 设置为 253 的 IP 即启用远程算力模式 - COMPUTE_NODE_HOST=192.168.91.253 - COMPUTE_NODE_SSH_PORT=22 - COMPUTE_NODE_SSH_USER=root - COMPUTE_NODE_SSH_PASSWORD=ictrek # - COMPUTE_NODE_SSH_KEY=/root/.ssh/id_rsa # 优先用密钥,密码为备选 - COMPUTE_NODE_PYTHON=/opt/conda/bin/python - COMPUTE_NODE_DOCKER_CONTAINER=finetune-trainer - COMPUTE_NODE_WORKDIR=/root/Fine-tuning/backend - COMPUTE_NODE_REMOTE_DATA_DIR=/root/Fine-tuning/backend/data - COMPUTE_NODE_REMOTE_ENV=production - COMPUTE_NODE_SSH_TIMEOUT=300 depends_on: - postgres networks: - finetune-net frontend: build: context: ./frontend dockerfile: Dockerfile args: VITE_API_BASE_URL: /api/v1 VITE_WS_BASE_URL: /ws container_name: finetune-frontend restart: unless-stopped ports: - "3000:80" depends_on: - backend networks: - finetune-net networks: finetune-net: driver: bridge volumes: pgdata: