FROM node:22-bookworm-slim # ── System dependencies ────────────────────────────────────────────────────── # Build tools: needed for node-pty (native module) and Electron # xvfb + libgtk: needed if running Electron inside container with virtual display RUN apt-get update && apt-get install -y --no-install-recommends \ git \ curl \ wget \ ca-certificates \ python3 \ make \ g++ \ libx11-dev \ libxkbfile-dev \ libsecret-1-dev \ libfontconfig1 \ libgbm1 \ libasound2 \ xvfb \ && rm -rf /var/lib/apt/lists/* # ── Rust toolchain ─────────────────────────────────────────────────────────── ENV RUSTUP_HOME=/usr/local/rustup \ CARGO_HOME=/usr/local/cargo \ PATH=/usr/local/cargo/bin:$PATH RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ | sh -s -- -y --no-modify-path --default-toolchain stable \ && rustup component add clippy rustfmt \ && chmod -R a+w /usr/local/rustup /usr/local/cargo # ── Claude Code CLI ────────────────────────────────────────────────────────── RUN npm install -g @anthropic-ai/claude-code # ── Workspace ──────────────────────────────────────────────────────────────── WORKDIR /workspace # Context Studio Core is mounted at /opt/context-studio/core (read-only from host) # Workflow lives at /workspace/workflow (per-project, writable)