FROM rust:alpine3.21 AS builder
RUN apk add --no-cache \
musl-dev \
gcc \
make \
openssl-dev \
pkgconfig
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
RUN mkdir -p src && \
echo 'fn main() { println!("Dummy!"); }' > src/main.rs && \
find . -name "*.rs" -not -path "./src/main.rs" -exec touch {} \; && \
cargo build --all-features && \
cargo test --all-features --no-run && \
rm -rf src
COPY src/ ./src/
COPY resources/ ./resources/
COPY README.md ./
RUN cargo build --all-features && \
cargo test --all-features --no-run