mentorenwahl/frontend/Dockerfile
Dominic Grimm ff2b884d42
All checks were successful
continuous-integration/drone/push Build is passing
Agent oriented logged in state
2022-11-05 21:27:49 +01:00

32 lines
971 B
Docker

FROM lukemathwalker/cargo-chef:latest-rust-1.65.0 as chef
WORKDIR /usr/src/frontend
FROM chef as planner
WORKDIR /usr/src/frontend
RUN mkdir src && touch src/main.rs
COPY ./Cargo.toml .
RUN cargo chef prepare --recipe-path recipe.json
FROM chef as builder
WORKDIR /usr/local/bin
ARG TRUNK_VERSION="v0.16.0"
RUN wget -qO- https://github.com/thedodd/trunk/releases/download/${TRUNK_VERSION}/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf-
WORKDIR /usr/src/frontend
RUN rustup target add wasm32-unknown-unknown
COPY ./.cargo ./.cargo
COPY --from=planner /usr/src/frontend/recipe.json .
RUN cargo chef cook --release --recipe-path recipe.json
COPY ./index.html .
COPY ./graphql ./graphql
COPY ./src ./src
RUN trunk build --release
FROM tdewolff/minify as public
WORKDIR /usr/src/public
COPY --from=builder /usr/src/frontend/dist .
RUN minify . -r -o .
FROM nginx:alpine as runner
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY --from=public /usr/src/public /var/www/html