Add actor-owned contextual process provisioning, descriptor bootstrap, scoped namespace operations, Python bindings, Myelin orchestration, and adversarial end-to-end coverage. Remove the superseded job runner, pipeline APIs, images, entrypoints, and specifications.
50 lines
1.9 KiB
Text
50 lines
1.9 KiB
Text
ARG BASE_IMAGE=myelin-node-base:cuda12.6
|
|
FROM ${BASE_IMAGE} AS wheel-builder
|
|
ARG RUST_TOOLCHAIN=nightly-2026-02-07
|
|
|
|
ENV PATH=/root/.cargo/bin:${PATH}
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
curl \
|
|
pkg-config \
|
|
python3 \
|
|
python3-dev \
|
|
python3-pip && \
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
|
|
sh -s -- -y --profile minimal --default-toolchain none && \
|
|
rustup toolchain install "${RUST_TOOLCHAIN}" --profile minimal --component rustc-dev && \
|
|
python3 -m pip install --break-system-packages --no-cache-dir 'maturin>=1.7,<2' && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
WORKDIR /workspace
|
|
COPY . .
|
|
RUN --mount=type=cache,id=myelin-e2e-cargo-registry,target=/root/.cargo/registry \
|
|
--mount=type=cache,id=myelin-e2e-target,target=/workspace/target \
|
|
maturin build \
|
|
--manifest-path crates/bindings/python/Cargo.toml \
|
|
--release \
|
|
--interpreter python3 \
|
|
--out /wheel
|
|
|
|
FROM ${BASE_IMAGE}
|
|
ARG MYELIN_NODE_BIN=target/release/myelin-worker
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends python3 python3-pip && \
|
|
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/*
|
|
COPY ${MYELIN_NODE_BIN} /usr/local/bin/myelin-node
|
|
COPY --from=wheel-builder /wheel/*.whl /tmp/swactor-wheel/
|
|
RUN python3 -m pip install --break-system-packages --no-cache-dir /tmp/swactor-wheel/*.whl && \
|
|
rm -rf /tmp/swactor-wheel && \
|
|
chmod +x /usr/local/bin/myelin-node
|
|
COPY apps/myelin/node-image/e2e_python_launcher.py /usr/local/bin/myelin-e2e-python
|
|
RUN chmod +x /usr/local/bin/myelin-e2e-python
|