2026-08-28 09:07:31 +00:00
|
|
|
# Myelin node agent with the Python Swactor binding used by contextual scripts.
|
|
|
|
|
# Build from the workspace root:
|
refactor: `mvp-system` is now a standalone app, `myelin`
Promote the `mvp-system` workspace library crate to a standalone application at `apps/myelin`, rebranding the MVP system along with its binaries, node image, and spec.
- workspace `Cargo.toml`: swap member `crates/mvp-system` -> `apps/myelin` and drop `apps` from `exclude` so the app joins the workspace
- `apps/myelin/Cargo.toml`: declare package `myelin` with `autobins = false` and explicit `[[bin]]` targets `myelin-worker`, `myelin-orchestrator`, `myelin-chat`
- `apps/myelin/src`: move the whole `mvp-system` source tree and rebrand module surfaces (`chat/mod.rs`, `prompt/mod.rs`); add `bin/chat.rs` (`myelin::run_chat_from_args`) and delete the old `mvp_chat.rs`
- `apps/myelin/node-image`: relocate the worker image assets from `apps/mvp-node/` (Dockerfile, Dockerfile.base, tinygrad_worker.py, entrypoint, e2e script) and rename `MVP_SYSTEM_SPEC.md` -> `MYELIN_SPEC.md`
- `xtask`: rewrite build/reference paths for the rename (~1000-line churn); add `crates/dashboard/ACTOR_PANEL_SPEC.md`
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-08-01 09:46:55 +00:00
|
|
|
# docker build -f apps/myelin/node-image/Dockerfile.base -t myelin-node-base:cuda12.6 .
|
2026-08-28 09:07:31 +00:00
|
|
|
# docker build -f apps/myelin/node-image/Dockerfile -t myelin-node:latest .
|
refactor: `mvp-system` is now a standalone app, `myelin`
Promote the `mvp-system` workspace library crate to a standalone application at `apps/myelin`, rebranding the MVP system along with its binaries, node image, and spec.
- workspace `Cargo.toml`: swap member `crates/mvp-system` -> `apps/myelin` and drop `apps` from `exclude` so the app joins the workspace
- `apps/myelin/Cargo.toml`: declare package `myelin` with `autobins = false` and explicit `[[bin]]` targets `myelin-worker`, `myelin-orchestrator`, `myelin-chat`
- `apps/myelin/src`: move the whole `mvp-system` source tree and rebrand module surfaces (`chat/mod.rs`, `prompt/mod.rs`); add `bin/chat.rs` (`myelin::run_chat_from_args`) and delete the old `mvp_chat.rs`
- `apps/myelin/node-image`: relocate the worker image assets from `apps/mvp-node/` (Dockerfile, Dockerfile.base, tinygrad_worker.py, entrypoint, e2e script) and rename `MVP_SYSTEM_SPEC.md` -> `MYELIN_SPEC.md`
- `xtask`: rewrite build/reference paths for the rename (~1000-line churn); add `crates/dashboard/ACTOR_PANEL_SPEC.md`
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-08-01 09:46:55 +00:00
|
|
|
ARG BASE_IMAGE=myelin-node-base:cuda12.6
|
2026-08-28 09:07:31 +00:00
|
|
|
FROM ${BASE_IMAGE} AS wheel-builder
|
|
|
|
|
ARG RUST_TOOLCHAIN=nightly-2026-02-07
|
refactor: `mvp-system` is now a standalone app, `myelin`
Promote the `mvp-system` workspace library crate to a standalone application at `apps/myelin`, rebranding the MVP system along with its binaries, node image, and spec.
- workspace `Cargo.toml`: swap member `crates/mvp-system` -> `apps/myelin` and drop `apps` from `exclude` so the app joins the workspace
- `apps/myelin/Cargo.toml`: declare package `myelin` with `autobins = false` and explicit `[[bin]]` targets `myelin-worker`, `myelin-orchestrator`, `myelin-chat`
- `apps/myelin/src`: move the whole `mvp-system` source tree and rebrand module surfaces (`chat/mod.rs`, `prompt/mod.rs`); add `bin/chat.rs` (`myelin::run_chat_from_args`) and delete the old `mvp_chat.rs`
- `apps/myelin/node-image`: relocate the worker image assets from `apps/mvp-node/` (Dockerfile, Dockerfile.base, tinygrad_worker.py, entrypoint, e2e script) and rename `MVP_SYSTEM_SPEC.md` -> `MYELIN_SPEC.md`
- `xtask`: rewrite build/reference paths for the rename (~1000-line churn); add `crates/dashboard/ACTOR_PANEL_SPEC.md`
Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-08-01 09:46:55 +00:00
|
|
|
|
2026-08-28 09:07:31 +00:00
|
|
|
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-python-cargo-registry,target=/root/.cargo/registry \
|
|
|
|
|
--mount=type=cache,id=myelin-python-target,target=/workspace/target \
|
|
|
|
|
cargo build --release -p myelin --bin myelin-worker && \
|
|
|
|
|
install -Dm0755 target/release/myelin-worker /out/myelin-worker && \
|
|
|
|
|
maturin build \
|
|
|
|
|
--manifest-path crates/bindings/python/Cargo.toml \
|
|
|
|
|
--release \
|
|
|
|
|
--interpreter python3 \
|
|
|
|
|
--out /wheel
|
|
|
|
|
|
|
|
|
|
FROM ${BASE_IMAGE}
|
|
|
|
|
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/*
|
|
|
|
|
COPY --from=wheel-builder /out/myelin-worker /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 && \
|
|
|
|
|
apt-get purge -y --auto-remove 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/* && \
|
|
|
|
|
chmod +x /usr/local/bin/myelin-node
|