Replace the eventfd/ring job bootstrap with one inherited arena descriptor, actor-owned sessions, sealed blob leases, awaitable inbox wakeups, and zero-copy Python mappings. Route VastAI mock provisioning through image-backed local Docker workers and preserve pinned child and controller routes across directory updates. Add TOML job-file submission to the Fleet UI with generic started, running, and completed feedback, reusable remote job controller routing, cancellation and kill invariants, Tinygrad fixture and image support, and comprehensive Rust, Python, CUDA, and lifecycle-ordering coverage.
37 lines
1.3 KiB
Text
37 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
|