nanochat-eos / Dockerfile
ksjpswaroop's picture
Upload folder using huggingface_hub
50ebd92 verified
# Nanochat with GPU support (CUDA + PyTorch). Use to get a clean NCCL/CUDA environment.
# Build: docker build -t nanochat:gpu .
# Run: docker run --gpus all -it --rm -v "$(pwd)":/workspace/nanochat -w /workspace/nanochat nanochat:gpu bash
# Test NCCL: docker run --gpus all -it --rm -v "$(pwd)":/workspace/nanochat -w /workspace/nanochat --shm-size=1g nanochat:gpu bash scripts/try_nccl_8gpu.sh
FROM nvidia/cuda:12.4.0-cudnn-runtime-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
python3-pip \
python3-venv \
git \
curl \
&& rm -rf /var/lib/apt/lists/*
# Install uv (install script puts it in /root/.local/bin when run as root)
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:$PATH"
WORKDIR /workspace/nanochat
# Copy project (context should be repo root)
COPY pyproject.toml uv.lock ./
COPY nanochat ./nanochat
COPY scripts ./scripts
COPY runs ./runs
COPY tasks ./tasks
COPY docs ./docs
# Create venv and install with GPU extra (PyTorch cu128); venv in /opt so mount doesn't override it
RUN uv venv /opt/venv && UV_PROJECT_ENVIRONMENT=/opt/venv uv sync --extra gpu
ENV PATH="/opt/venv/bin:$PATH" VIRTUAL_ENV=/opt/venv
# Default: bash so you can run torchrun / scripts manually
CMD ["bash"]