From 905cc75f2bac9b875896c0aece3629dcb81a72c7 Mon Sep 17 00:00:00 2001 From: Argenis Date: Mon, 16 Mar 2026 14:21:37 -0400 Subject: [PATCH] fix(docker): prevent dummy binary from being shipped in container (#3687) (#3718) --- Dockerfile | 3 +++ Dockerfile.debian | 3 +++ 2 files changed, 6 insertions(+) diff --git a/Dockerfile b/Dockerfile index 5128eff07..d5f0d4152 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,12 +50,15 @@ RUN mkdir -p web/dist && \ ' ' \ '' > web/dist/index.html; \ fi +RUN touch src/main.rs 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 \ cargo build --release --locked && \ cp target/release/zeroclaw /app/zeroclaw && \ strip /app/zeroclaw +RUN size=$(stat -c%s /app/zeroclaw 2>/dev/null || stat -f%z /app/zeroclaw) && \ + if [ "$size" -lt 1000000 ]; then echo "ERROR: binary too small (${size} bytes), likely dummy build artifact" && exit 1; fi # Prepare runtime directory structure and default config inline (no extra stage) RUN mkdir -p /zeroclaw-data/.zeroclaw /zeroclaw-data/workspace && \ diff --git a/Dockerfile.debian b/Dockerfile.debian index 6d290f587..e81fbf144 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -64,12 +64,15 @@ RUN mkdir -p web/dist && \ ' ' \ '' > web/dist/index.html; \ fi +RUN touch src/main.rs 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 \ cargo build --release --locked && \ cp target/release/zeroclaw /app/zeroclaw && \ strip /app/zeroclaw +RUN size=$(stat -c%s /app/zeroclaw 2>/dev/null || stat -f%z /app/zeroclaw) && \ + if [ "$size" -lt 1000000 ]; then echo "ERROR: binary too small (${size} bytes), likely dummy build artifact" && exit 1; fi # Prepare runtime directory structure and default config inline (no extra stage) RUN mkdir -p /zeroclaw-data/.zeroclaw /zeroclaw-data/workspace && \