phundrak.com/Dockerfile
Lucien Cartier-Tilet 8e925b884e
perf(backend): Cache build of dependencies
When building the Docker image, first compile the project with a fake
main file, namely `dummy.rs`. Once dependencies are built, compile the
actual project by switching back to `src/main.rs`.

Signed-off-by: Lucien Cartier-Tilet <lucien@phundrak.com>
2023-02-09 12:13:58 +01:00

22 lines
385 B
Docker

FROM rust:alpine
WORKDIR /app
RUN apk update && apk add pkgconfig openssl-dev musl-dev
COPY Cargo.toml .
COPY dummy.rs .
# Cache building
RUN sed -i 's|src/main.rs|dummy.rs|' Cargo.toml
RUN cargo build --release
RUN cargo build
RUN sed -i 's|dummy.rs|src/main.rs|' Cargo.toml
# Building normally
COPY src src
RUN cargo build
RUN cargo install --path .
ENTRYPOINT [ "phuncache" ]