diff --git a/Dockerfile b/Dockerfile index f57b3429..78bf9c49 100644 --- a/Dockerfile +++ b/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 diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 00000000..2689595d --- /dev/null +++ b/Dockerfile.dev @@ -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