# Basalt (github.com/jesdga95/basalt, MIT): a Strata fork tuned for Qwen3.8-Flash-Next on
# Blackwell sm_120 (the RTX 5090). Same build as hal5090's Dockerfile.basalt (image
# basalt:5b7eff1), but cloning the pinned commit here instead of copying a checkout.
# Base: nvidia/cuda:13.0.0-devel-ubuntu24.04, pinned by digest (CUDA 13, CMake >= 3.24, C++20).
FROM nvidia/cuda@sha256:1e8ac7a54c184a1af8ef2167f28fa98281892a835c981ebcddb1fad04bdd452d

RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential cmake git curl ca-certificates \
        python3 python3-pip \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /opt/basalt
RUN git init -q . \
    && git fetch -q --depth 1 https://github.com/jesdga95/basalt 5b7eff1677ce90a3e2be61c913aa7f880d46ac1e \
    && git checkout -q FETCH_HEAD \
    && test "$(git rev-parse HEAD)" = 5b7eff1677ce90a3e2be61c913aa7f880d46ac1e

# The commit's requirements.txt, spelled out so the pins are visible here (Python 3.12).
RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
    && cmake --build build -j"$(nproc)" \
    && python3 -m pip install --no-cache-dir --break-system-packages \
        numpy==2.5.3 jinja2==3.1.6 markupsafe==3.0.3 regex==2026.9.10 pyyaml==6.0.3 \
        tqdm==4.70.1 pillow==12.3.0 psutil==7.2.2

# bin/basalt (the build writes it to /opt/basalt/bin) starts the Python server, which spawns the engine.
