43 lines
853 B
Docker
43 lines
853 B
Docker
##################
|
|
### BASE STAGE ###
|
|
##################
|
|
FROM rust:1.60 as base
|
|
|
|
# Install build dependencies
|
|
RUN cargo install --locked trunk strip_cargo_version
|
|
RUN rustup target add wasm32-unknown-unknown
|
|
|
|
WORKDIR /app
|
|
RUN mkdir frontend backend common
|
|
|
|
###########################
|
|
### STRIP-VERSION STAGE ###
|
|
###########################
|
|
FROM base AS strip-version
|
|
|
|
COPY Cargo.lock Cargo.toml ./
|
|
RUN strip_cargo_version
|
|
|
|
###################
|
|
### BUILD STAGE ###
|
|
###################
|
|
FROM base AS build
|
|
|
|
RUN cargo init --lib .
|
|
COPY --from=strip-version /app/Cargo.toml /app/Cargo.lock /app/
|
|
|
|
RUN cargo build --release --target wasm32-unknown-unknown
|
|
|
|
COPY . .
|
|
|
|
RUN trunk build --release
|
|
|
|
RUN ls -l . dist
|
|
|
|
########################
|
|
### PRODUCTION STAGE ###
|
|
########################
|
|
FROM nginx:alpine
|
|
|
|
COPY --from=build /app/dist/* /usr/share/nginx/html/
|