FROM rust:1-trixie as builder RUN rustup target add x86_64-unknown-linux-musl RUN apt-get update && apt-get install -y musl-tools musl-dev WORKDIR /usr/src/app COPY ./Cargo.toml ./ RUN mkdir src && echo "fn main(){}" > src/main.rs RUN cargo build --release --target x86_64-unknown-linux-musl COPY ./src ./src COPY ./migrations ./migrations COPY ./static ./static RUN touch src/main.rs && cargo build --release --target x86_64-unknown-linux-musl FROM scratch WORKDIR /app COPY --from=builder /usr/src/app/target/x86_64-unknown-linux-musl/release/shortlink-rs . COPY --from=builder /usr/src/app/static ./static COPY --from=builder /usr/src/app/migrations ./migrations EXPOSE 3000 CMD ["./shortlink-rs"]