]> Untitled Git - lemmy.git/commitdiff
Use docker cache for docker/dev/
authorFelix Ableitner <me@nutomic.com>
Sat, 24 Oct 2020 15:23:45 +0000 (17:23 +0200)
committerFelix Ableitner <me@nutomic.com>
Tue, 27 Oct 2020 12:58:52 +0000 (13:58 +0100)
docker/dev/Dockerfile

index a4341f3d031bf1d9624f528b56272d462fdccaa4..69af565374b464a06f3c478720899ca33413e42c 100644 (file)
@@ -1,50 +1,21 @@
-FROM ekidd/rust-musl-builder:nightly-2020-05-07 as rust
+# syntax=docker/dockerfile:experimental
+FROM rust:1.47-buster as rust
 
-# Cache deps
-WORKDIR /app
-RUN sudo chown -R rust:rust .
-RUN USER=root cargo new server
-
-# Install cargo-build-deps
-RUN cargo install --git https://github.com/romac/cargo-build-deps.git
-WORKDIR /app/server
-RUN mkdir -p lemmy_db/src/ \
-      lemmy_utils/src/ \
-      lemmy_structs/src/ \
-      lemmy_rate_limit/src/ \
-      lemmy_api/src/ \
-      lemmy_apub/src/ \
-      lemmy_websocket/src/ \
-      lemmy
+ENV HOME=/home/root
 
-# Copy the cargo tomls
-COPY Cargo.toml Cargo.lock ./
-COPY lemmy_db/Cargo.toml ./lemmy_db/
-COPY lemmy_utils/Cargo.toml ./lemmy_utils/
-COPY lemmy_structs/Cargo.toml ./lemmy_structs/
-COPY lemmy_rate_limit/Cargo.toml ./lemmy_rate_limit/
-COPY lemmy_api/Cargo.toml ./lemmy_api/
-COPY lemmy_apub/Cargo.toml ./lemmy_apub/
-COPY lemmy_websocket/Cargo.toml ./lemmy_websocket/
-
-# Cache the deps
-RUN cargo build-deps
+WORKDIR /app
 
-# Copy the src folders
-COPY src ./src/
-COPY lemmy_db/src ./lemmy_db/src/
-COPY lemmy_utils/src/ ./lemmy_utils/src/
-COPY lemmy_structs/src/ ./lemmy_structs/src/
-COPY lemmy_rate_limit/src/ ./lemmy_rate_limit/src/
-COPY lemmy_api/src/ ./lemmy_api/src/
-COPY lemmy_apub/src/ ./lemmy_apub/src/
-COPY lemmy_websocket/src/ ./lemmy_websocket/src/
-COPY migrations ./migrations/
+# Copy the source folders
+COPY . .
 
 # Build for debug
-RUN cargo build
+RUN --mount=type=cache,target=/usr/local/cargo/registry \
+    --mount=type=cache,target=/app/target \
+    cargo build
+RUN --mount=type=cache,target=/app/target \
+    cp target/debug/lemmy_server lemmy_server
 
-FROM ekidd/rust-musl-builder:nightly-2020-05-07 as docs
+FROM ekidd/rust-musl-builder:1.47.0 as docs
 WORKDIR /app
 COPY docs ./docs
 RUN sudo chown -R rust:rust .
@@ -60,7 +31,7 @@ RUN apk add espeak
 
 # Copy resources
 COPY config/defaults.hjson /config/defaults.hjson
-COPY --from=rust /app/server/target/x86_64-unknown-linux-musl/debug/lemmy_server /app/lemmy
+COPY --from=rust /app/lemmy_server /app/lemmy
 COPY --from=docs /app/docs/book/ /app/documentation/
 
 RUN addgroup -g 1000 lemmy