sharenet/backend/Dockerfile.test-rust
continuist 0790b63dc3
Some checks failed
Podman Rootless Demo / test-backend (push) Failing after 7m53s
Implement suggested changes to make cargo-chef work for local crates
2025-09-19 21:45:56 -04:00

32 lines
No EOL
1.2 KiB
Text

# Base stage with consistent working directory
FROM docker.io/rust:1.89-slim AS base
WORKDIR /app
# Planner: produce recipe.json
FROM base AS planner
RUN apt-get update && apt-get install -y --no-install-recommends pkg-config libssl-dev ca-certificates && rm -rf /var/lib/apt/lists/*
RUN cargo install --locked cargo-chef
COPY . .
RUN cargo chef prepare --recipe-path recipe.json
# Deps: compile only external crates
FROM base AS deps
RUN apt-get update && apt-get install -y --no-install-recommends pkg-config libssl-dev ca-certificates && rm -rf /var/lib/apt/lists/*
RUN cargo install --locked cargo-chef
ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
COPY --from=planner /app/recipe.json recipe.json
RUN cargo chef cook --release --recipe-path recipe.json
# Test-build: compile workspace with pre-built dependencies
FROM base AS test-build
COPY --from=deps /usr/local/cargo /usr/local/cargo
COPY --from=deps /usr/local/rustup /usr/local/rustup
COPY --from=deps /app/target /app/target
COPY . .
RUN cargo test --workspace --locked --no-run
# Runner: minimal runtime for test execution
FROM base AS runner
COPY --from=test-build /app/target /app/target
WORKDIR /app
CMD ["cargo", "test", "--workspace", "--locked", "--", "--test-threads=1"]