Use multi step build to limit the docker image size #416
2 changed files with 57 additions and 3 deletions
27
Dockerfile
27
Dockerfile
|
@ -1,6 +1,7 @@
|
|||
FROM rust:1-stretch
|
||||
FROM rust:1-stretch as builder
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
gettext \
|
||||
postgresql-client \
|
||||
libpq-dev \
|
||||
|
@ -10,17 +11,37 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||
make \
|
||||
openssl \
|
||||
libssl-dev
|
||||
|
||||
WORKDIR /scratch
|
||||
COPY script/wasm-deps.sh .
|
||||
RUN chmod a+x ./wasm-deps.sh && ./wasm-deps.sh
|
||||
RUN chmod a+x ./wasm-deps.sh && sleep 1 && ./wasm-deps.sh
|
||||
|
||||
WORKDIR /app
|
||||
COPY Cargo.toml Cargo.lock rust-toolchain ./
|
||||
RUN cargo install diesel_cli --no-default-features --features postgres --version '=1.3.0'
|
||||
RUN cargo install cargo-web
|
||||
|
||||
COPY . .
|
||||
RUN chmod a+x ./script/plume-front.sh && ./script/plume-front.sh
|
||||
|
||||
RUN chmod a+x ./script/plume-front.sh && sleep 1 && ./script/plume-front.sh
|
||||
RUN cargo install --path ./ --force --no-default-features --features postgres
|
||||
RUN cargo install --path plume-cli --force --no-default-features --features postgres
|
||||
RUN cargo clean
|
||||
|
||||
FROM debian:stretch-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
libpq5 \
|
||||
libssl1.1
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=builder /app /app
|
||||
COPY --from=builder /usr/local/cargo/bin/plm /bin/
|
||||
COPY --from=builder /usr/local/cargo/bin/plume /bin/
|
||||
COPY --from=builder /usr/local/cargo/bin/diesel /bin/
|
||||
|
||||
CMD ["plume"]
|
||||
|
||||
EXPOSE 7878
|
||||
|
|
33
Dockerfile.dev
Normal file
33
Dockerfile.dev
Normal file
|
@ -0,0 +1,33 @@
|
|||
FROM rust:1-stretch
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
gettext \
|
||||
postgresql-client \
|
||||
libpq-dev \
|
||||
git \
|
||||
curl \
|
||||
gcc \
|
||||
make \
|
||||
openssl \
|
||||
libssl-dev
|
||||
|
||||
WORKDIR /scratch
|
||||
COPY script/wasm-deps.sh .
|
||||
RUN chmod a+x ./wasm-deps.sh && sleep 1 && ./wasm-deps.sh
|
||||
|
||||
WORKDIR /app
|
||||
COPY Cargo.toml Cargo.lock rust-toolchain ./
|
||||
RUN cargo install diesel_cli --no-default-features --features postgres --version '=1.3.0'
|
||||
RUN cargo install cargo-web
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN chmod a+x ./script/plume-front.sh && sleep 1 && ./script/plume-front.sh
|
||||
RUN cargo install --path ./ --force --no-default-features --features postgres
|
||||
RUN cargo install --path plume-cli --force --no-default-features --features postgres
|
||||
RUN cargo clean
|
||||
|
||||
CMD ["plume"]
|
||||
|
||||
EXPOSE 7878
|
Loading…
Reference in a new issue