Selaa lähdekoodia

Simplify Dockerfile

This should hopefully build faster in CI, speeding up deployments,
as well as just being simpler to understand.
Mark Rousskov 5 vuotta sitten
vanhempi
commit
c68bce1113
1 muutettua tiedostoa jossa 4 lisäystä ja 20 poistoa
  1. 4 20
      Dockerfile

+ 4 - 20
Dockerfile

@@ -8,38 +8,22 @@
 FROM ubuntu:bionic AS build
 
 RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
+    --no-install-recommends \
     ca-certificates \
     curl \
-    build-essential \
+    gcc g++ \
     pkg-config \
     libssl-dev
 
 RUN curl https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init >/tmp/rustup-init && \
     chmod +x /tmp/rustup-init && \
-    /tmp/rustup-init -y --no-modify-path --default-toolchain stable
+    /tmp/rustup-init -y --no-modify-path --default-toolchain stable --profile minimal
 ENV PATH=/root/.cargo/bin:$PATH
 
-# Build the dependencies in a separate step to avoid rebuilding all of them
-# every time the source code changes. This takes advantage of Docker's layer
-# caching, and it works by copying the Cargo.{toml,lock} with dummy source code
-# and doing a full build with it.
 WORKDIR /tmp/source
-COPY Cargo.lock Cargo.toml /tmp/source/
-COPY parser/Cargo.toml /tmp/source/parser/Cargo.toml
-RUN mkdir -p /tmp/source/src /tmp/source/parser/src && \
-    echo "fn main() {}" > /tmp/source/src/main.rs && \
-    touch /tmp/source/parser/src/lib.rs
-RUN cargo fetch
+COPY . /tmp/source/
 RUN cargo build --release
 
-# Dependencies are now cached, copy the actual source code and do another full
-# build. The touch on all the .rs files is needed, otherwise cargo assumes the
-# source code didn't change thanks to mtime weirdness.
-RUN rm -rf /tmp/source/src /tmp/source/parser/src
-COPY src /tmp/source/src
-COPY parser/src /tmp/source/parser/src
-RUN find -name "*.rs" -exec touch {} \; && cargo build --release
-
 ##################
 #  Output image  #
 ##################