38 lines
1.3 KiB
Text
38 lines
1.3 KiB
Text
|
|
# Minimal job image: Myelin agent + Python binding + tinygrad CUDA runtime.
|
||
|
|
# Build from the workspace root after building myelin-node:latest:
|
||
|
|
# docker build -f apps/myelin/node-image/Dockerfile.job-tinygrad -t myelin-job-tinygrad:cuda12.6 .
|
||
|
|
|
||
|
|
ARG BASE_IMAGE=myelin-node:latest
|
||
|
|
FROM ubuntu:24.04 AS python-binding
|
||
|
|
|
||
|
|
RUN apt-get update && \
|
||
|
|
apt-get install -y --no-install-recommends \
|
||
|
|
build-essential \
|
||
|
|
ca-certificates \
|
||
|
|
curl \
|
||
|
|
pkg-config \
|
||
|
|
python3-dev && \
|
||
|
|
rm -rf /var/lib/apt/lists/*
|
||
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
|
||
|
|
ENV PATH=/root/.cargo/bin:${PATH}
|
||
|
|
WORKDIR /src
|
||
|
|
COPY . .
|
||
|
|
RUN cargo build --release -p python
|
||
|
|
|
||
|
|
FROM ${BASE_IMAGE}
|
||
|
|
|
||
|
|
RUN apt-get update && \
|
||
|
|
apt-get install -y --no-install-recommends python3 python3-pip && \
|
||
|
|
python3 -m pip install --break-system-packages --no-cache-dir tinygrad==0.11.0 && \
|
||
|
|
apt-get clean && \
|
||
|
|
rm -rf /var/lib/apt/lists/* \
|
||
|
|
/var/cache/apt/archives/* \
|
||
|
|
/root/.cache/pip
|
||
|
|
|
||
|
|
COPY --from=python-binding /src/target/release/libswactor.so /usr/local/lib/python3.12/dist-packages/swactor.so
|
||
|
|
COPY apps/myelin/jobs/tiny_linear_inference.py /usr/local/share/myelin/tiny_linear_inference.py
|
||
|
|
|
||
|
|
ENV CUDA_PTX=1 \
|
||
|
|
DEV=CUDA \
|
||
|
|
PYTHONPATH=/usr/local/lib/python3.12/dist-packages
|