# MVP node BASE image — CUDA/Python/tinygrad/sshd/PID-1 foundation. # Build from workspace root: # docker build -f apps/mvp-node/Dockerfile.base -t swactor-mvp-node-base:cuda12.6 . FROM nvidia/cuda:12.6.3-runtime-ubuntu24.04 AS builder RUN apt-get update && \ apt-get install -y --no-install-recommends \ python3 \ python3-pip \ ca-certificates \ cuda-cudart-dev-12-6 && \ rm -rf /var/lib/apt/lists/* RUN python3 -m pip install --no-cache-dir --break-system-packages \ --target=/opt/mvp-pydeps \ tinygrad==0.12.0 numpy && \ find /opt/mvp-pydeps -depth -type d \ \( -name '__pycache__' -o -name 'tests' -o -name 'test' \) \ -exec rm -rf {} + && \ find /opt/mvp-pydeps -name '*.pyc' -delete && \ find /opt/mvp-pydeps -type d -name '*.dist-info' -exec rm -rf {} + RUN mkdir -p /opt/mvp-nvrtc-include && \ cp -rL /usr/local/cuda/include/. /opt/mvp-nvrtc-include/ && \ test -f /opt/mvp-nvrtc-include/vector_types.h FROM nvidia/cuda:12.6.3-base-ubuntu24.04 AS runtime RUN apt-get update && \ apt-get install -y --no-install-recommends \ python3 \ cuda-cudart-12-6 \ cuda-nvrtc-12-6 \ ca-certificates \ procps \ openssh-server && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* \ /var/cache/apt/archives/* \ /var/cache/apt/*.bin \ /var/log/apt/* \ /var/log/dpkg.log \ /tmp/* \ /var/tmp/* \ /usr/share/doc/* \ /usr/share/man/* \ /usr/share/info/* && \ find /usr -depth -type d -name '__pycache__' -exec rm -rf {} + 2>/dev/null || true && \ find /usr -type f -name '*.pyc' -delete 2>/dev/null || true && \ mkdir -p /usr/local/share/mvp /var/cache/mvp-models /var/log COPY --from=builder /opt/mvp-nvrtc-include/ /usr/local/cuda/include/ COPY --from=builder /opt/mvp-pydeps /opt/mvp-pydeps ENV PYTHONPATH=/opt/mvp-pydeps ENV PYTHONDONTWRITEBYTECODE=1 ENV CUDA=1 ENV DEV=CUDA ENV MVP_MODEL_CACHE_DIR=/var/cache/mvp-models ENV MVP_TINYGRAD_WORKER=/usr/local/share/mvp/tinygrad_worker.py COPY apps/mvp-node/mvp_entrypoint.sh /usr/local/bin/mvp_entrypoint.sh RUN chmod +x /usr/local/bin/mvp_entrypoint.sh ARG DEPLOY_PUBKEY="" RUN if [ -n "$DEPLOY_PUBKEY" ]; then printf '%s\n' "$DEPLOY_PUBKEY" > /etc/mvp_deploy_key.pub; fi ENTRYPOINT ["/usr/local/bin/mvp_entrypoint.sh"]