forked from Deuxfleurs/infrastructure
54 lines
1.2 KiB
Docker
54 lines
1.2 KiB
Docker
FROM rust:1.47.0-slim-buster as builder
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
pkg-config \
|
|
git \
|
|
curl \
|
|
postgresql \
|
|
postgresql-contrib \
|
|
libpq-dev \
|
|
gettext \
|
|
git \
|
|
curl \
|
|
gcc \
|
|
make \
|
|
openssl \
|
|
libssl-dev \
|
|
libclang-dev
|
|
|
|
ARG VERSION
|
|
WORKDIR /opt
|
|
RUN git clone -n https://git.joinplu.me/Plume/Plume.git plume
|
|
|
|
WORKDIR /opt/plume
|
|
RUN git checkout ${VERSION}
|
|
|
|
RUN cargo install diesel_cli --no-default-features --features postgres --version '=1.3.0'
|
|
|
|
# frontend
|
|
RUN cargo install cargo-web
|
|
RUN cargo web deploy -p plume-front --release
|
|
# backend
|
|
RUN cargo install --no-default-features --features postgres -f --path .
|
|
# cli
|
|
RUN cargo install --no-default-features --features postgres --path plume-cli
|
|
RUN cargo clean
|
|
|
|
#-----------------------------
|
|
FROM debian:bullseye-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
libpq5 \
|
|
libssl1.1
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /opt/plume /app
|
|
COPY --from=builder /usr/local/cargo/bin/diesel /usr/local/bin/
|
|
COPY --from=builder /usr/local/cargo/bin/plm /usr/local/bin/
|
|
COPY --from=builder /usr/local/cargo/bin/plume /usr/local/bin/
|
|
COPY plm-start /usr/local/bin/
|
|
|
|
CMD ["plm-start"]
|