# Lightweight test Dockerfile for IronClaw web gateway testing. # # Build: # docker build --platform linux/amd64 -f Dockerfile.test -t ironclaw-test . # # Run (each on a different port): # docker run --rm -p 3003:3003 ironclaw-test # docker run --rm -p 3004:3003 ironclaw-test # docker run --rm -p 3005:3003 ironclaw-test # Stage 1: Build (libsql only — no PostgreSQL dependency) FROM rust:1.92-slim-bookworm AS builder RUN apt-get update && apt-get install -y --no-install-recommends \ pkg-config libssl-dev cmake gcc g++ \ && rm -rf /var/lib/apt/lists/* \ && rustup target add wasm32-wasip2 \ && cargo install wasm-tools WORKDIR /app COPY Cargo.toml Cargo.lock ./ COPY crates/ crates/ COPY build.rs build.rs COPY src/ src/ COPY tests/ tests/ COPY migrations/ migrations/ COPY registry/ registry/ COPY channels-src/ channels-src/ COPY wit/ wit/ RUN cargo build --release --no-default-features --features libsql --bin ironclaw # Stage 2: Runtime FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates libssl3 \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/target/release/ironclaw /usr/local/bin/ironclaw RUN useradd -m -u 1000 -s /bin/bash ironclaw USER ironclaw WORKDIR /home/ironclaw EXPOSE 3003 ENV RUST_LOG=ironclaw=info \ GATEWAY_ENABLED=true \ GATEWAY_HOST=0.0.0.0 \ GATEWAY_PORT=3003 \ GATEWAY_AUTH_TOKEN=test \ DATABASE_BACKEND=libsql \ LIBSQL_PATH=/home/ironclaw/test.db \ SANDBOX_ENABLED=false ENTRYPOINT ["ironclaw", "--no-onboard"]