Spaces:
Running
Running
| # Training Dockerfile for Northflank GPU jobs. | |
| # | |
| # Uses CUDA base image + installs Unsloth, TRL, vLLM for | |
| # Scientist GRPO and Lab Manager SFT training. | |
| # | |
| # Build: docker build -f Dockerfile.train -t replicalab-train . | |
| # Run: docker run --gpus all -e MODE=train replicalab-train | |
| FROM nvidia/cuda:12.4.1-devel-ubuntu22.04 | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV PYTHONUNBUFFERED=1 | |
| WORKDIR /app | |
| # System deps | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| python3.11 python3.11-dev python3.11-venv python3-pip \ | |
| build-essential git curl \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && ln -sf /usr/bin/python3.11 /usr/bin/python \ | |
| && ln -sf /usr/bin/python3.11 /usr/bin/python3 | |
| # Upgrade pip | |
| RUN python -m pip install --no-cache-dir --upgrade pip setuptools wheel | |
| # Install server deps first (better layer caching) | |
| COPY server/requirements.txt ./server/requirements.txt | |
| RUN pip install --no-cache-dir -r server/requirements.txt | |
| # Install training deps (heavy — torch, unsloth, trl, vllm) | |
| COPY requirements-train.txt ./requirements-train.txt | |
| RUN pip install --no-cache-dir -r requirements-train.txt | |
| # Copy full project | |
| COPY replicalab/ ./replicalab/ | |
| COPY server/ ./server/ | |
| COPY data/ ./data/ | |
| COPY scripts/ ./scripts/ | |
| COPY pyproject.toml ./ | |
| COPY ReplicaLab_50_Scenarios_Training_Plan.md ./ | |
| # Install replicalab package | |
| RUN pip install --no-cache-dir . --no-deps | |
| # Make scripts executable | |
| RUN chmod +x scripts/train.sh | |
| # Default env vars | |
| ENV MODE=server | |
| ENV REPLICALAB_PERSIST_ROOT=/app/outputs/training | |
| ENV SEED_COUNT=8 | |
| ENV MAX_STEPS=300 | |
| ENV MODEL_NAME=Qwen/Qwen3.5-9B | |
| EXPOSE 7860 | |
| # Entrypoint dispatches based on MODE env var | |
| CMD ["bash", "scripts/train.sh"] | |