# Dockerfile.test - CI test environment for promocrypt-core
#
# Build: docker build -f Dockerfile.test -t promocrypt-test .
# Run: docker run --rm promocrypt-test
FROM rust:1.85-bookworm
# Install dependencies
RUN apt-get update && apt-get install -y \
pkg-config \
libssl-dev \
clang \
llvm \
&& rm -rf /var/lib/apt/lists/*
# Install additional Rust tools
RUN rustup component add clippy rustfmt
# Create app directory
WORKDIR /app
# Copy Cargo files first for dependency caching
COPY Cargo.toml Cargo.lock* ./
# Create dummy src to cache dependencies
RUN mkdir src && \
echo "pub fn main() {}" > src/lib.rs && \
cargo build --release 2>/dev/null || true && \
rm -rf src
# Copy actual source
COPY . .
# Build the project
RUN cargo build --release
# Default command: run all tests
CMD ["cargo", "test", "--release", "--all-features"]