Skip to content

Commit a1243fb

Browse files
Optimized dockerfile
1 parent 932763d commit a1243fb

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

Dockerfile

+19-11
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
1-
FROM rust:1.77 AS builder
2-
WORKDIR /usr/src/
3-
RUN cargo new tiddly-wiki-server
4-
WORKDIR /usr/src/tiddly-wiki-server
5-
# Dummy build (for cacheinng deps)
6-
COPY Cargo.toml Cargo.lock .
7-
RUN cargo fetch
8-
RUN cargo build --release
9-
# Project build
1+
FROM rust:1.81 AS base
2+
RUN cargo install sccache --version '^0.7' && \
3+
cargo install cargo-chef --version '^0.1'
4+
ENV RUSTC_WRAPPER=sccache SCCACHE_DIR=/sccache
5+
6+
FROM base AS planner
7+
WORKDIR /app
8+
COPY . .
9+
RUN --mount=type=cache,target=$SCCACHE_DIR,sharing=locked \
10+
cargo chef prepare --recipe-path recipe.json
11+
12+
FROM base AS builder
13+
WORKDIR /app
14+
COPY --from=planner /app/recipe.json recipe.json
15+
RUN --mount=type=cache,target=$SCCACHE_DIR,sharing=locked \
16+
cargo chef cook --release --recipe-path recipe.json
1017
COPY . .
11-
RUN cargo install --path . --root /usr/local/cargo
18+
RUN --mount=type=cache,target=$SCCACHE_DIR,sharing=locked \
19+
cargo build --release
1220

1321
FROM debian:bookworm-slim
14-
COPY --from=builder /usr/local/cargo/bin/tiddly-wiki-server /srv/tiddly-wiki-server
22+
COPY --from=builder /app/target/release/tiddly-wiki-server /srv/tiddly-wiki-server
1523
COPY ./empty.html.template /srv/empty.html.template
1624

1725
WORKDIR /srv/

0 commit comments

Comments
 (0)