diff --git a/Dockerfile b/Dockerfile index 3b473b9..b571799 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,8 +24,9 @@ RUN --mount=type=cache,id=zeroclaw-cargo-registry,target=/usr/local/cargo/regist cargo build --release --locked RUN rm -rf src benches -# 2. Copy source code -COPY . . +# 2. Copy only build-relevant source paths (avoid cache-busting on docs/tests/scripts) +COPY src/ src/ +COPY firmware/ firmware/ RUN --mount=type=cache,id=zeroclaw-cargo-registry,target=/usr/local/cargo/registry,sharing=locked \ --mount=type=cache,id=zeroclaw-cargo-git,target=/usr/local/cargo/git,sharing=locked \ --mount=type=cache,id=zeroclaw-target,target=/app/target,sharing=locked \ @@ -33,14 +34,10 @@ RUN --mount=type=cache,id=zeroclaw-cargo-registry,target=/usr/local/cargo/regist cp target/release/zeroclaw /app/zeroclaw && \ strip /app/zeroclaw -# ── Stage 2: Permissions & Config Prep ─────────────────────── -FROM busybox:1.37@sha256:b3255e7dfbcd10cb367af0d409747d511aeb66dfac98cf30e97e87e4207dd76f AS permissions -# Create directory structure (simplified workspace path) -RUN mkdir -p /zeroclaw-data/.zeroclaw /zeroclaw-data/workspace - -# Create minimal config for PRODUCTION (allows binding to public interfaces) -# NOTE: Provider configuration must be done via environment variables at runtime -RUN cat > /zeroclaw-data/.zeroclaw/config.toml < /zeroclaw-data/.zeroclaw/config.toml <