@@ -5,24 +5,34 @@ ENV WORKDIR=/app
55WORKDIR ${WORKDIR}
66
77RUN apk add --update --no-cache make
8-
8+ RUN apk add --update --no-cache musl-dev
99# cargo-chef to cache dependencies https://crates.io/crates/cargo-chef
10+ RUN cargo install cargo-chef
11+
12+ COPY ./Makefile ${WORKDIR}/
13+ COPY ./src ${WORKDIR}/src
14+ COPY ./Cargo.lock ${WORKDIR}/Cargo.lock
15+ COPY ./Cargo.toml ${WORKDIR}/Cargo.toml
16+ RUN cargo chef prepare --recipe-path recipe.json
17+
18+ FROM init AS cacher
19+
20+ # COPY --from=init ${WORKDIR}/recipe.json recipe.json
21+ RUN cargo chef cook --release --recipe-path recipe.json
1022
1123# ##############################################################################
1224
1325FROM init AS builder
1426
15- RUN apk add --no-cache musl-dev
16- RUN cargo install cargo-chef
27+ ENV WORKDIR=/app
28+ WORKDIR ${WORKDIR}
1729
1830# sources
1931COPY ./src ${WORKDIR}/src
20- COPY ./Cargo.lock ${WORKDIR}/Cargo.lock
21- COPY ./Cargo.toml ${WORKDIR}/Cargo.toml
22- COPY ./Makefile ${WORKDIR}/
2332
24- # dependencies
25- RUN make dependencies
33+ # Copy over the cached dependencies
34+ COPY --from=cacher ${WORKDIR}/target target
35+ COPY --from=cacher $CARGO_HOME $CARGO_HOME
2636
2737# build
2838RUN ls -alhR && \
@@ -36,9 +46,10 @@ CMD ["make", "build"]
3646
3747FROM builder AS development
3848
39- # CMD []
49+ ENV WORKDIR=/app
50+ WORKDIR ${WORKDIR}
4051
41- CMD ["make" , "build" ]
52+ CMD []
4253
4354# ##############################################################################
4455
@@ -65,7 +76,6 @@ COPY ./.yamllint ${WORKDIR}/
6576COPY ./.yamlignore ${WORKDIR}/
6677COPY ./.gitignore ${WORKDIR}/
6778
68- RUN cargo chef cook --release --recipe-path recipe.json
6979
7080CMD ["make" , "lint" ]
7181
0 commit comments