FROM rust:alpine as builder RUN apk update RUN apk add --no-cache openssl-dev musl-dev WORKDIR /usr/src/app RUN rustup target add wasm32-unknown-unknown #RUN export CARGO_BUILD_JOBS = 1 ENV CARGO_BUILD_JOBS=1 RUN cargo install trunk RUN mkdir frontend RUN mkdir frontend/src RUN mkdir backend RUN mkdir backend/src RUN mkdir backend/api/ RUN mkdir backend/entity/ RUN mkdir backend/migration/ RUN mkdir backend/orm/ RUN mkdir backend/search/ RUN mkdir backend/api/src RUN mkdir backend/entity/src RUN mkdir backend/migration/src RUN mkdir backend/orm/src RUN mkdir backend/search/src COPY ./frontend/Cargo.toml /usr/src/app/frontend COPY ./dummy.rs /usr/src/app/frontend/src/main.rs COPY ./backend/Cargo.toml /usr/src/app/backend COPY ./dummy.rs /usr/src/app/backend/src/main.rs COPY ./backend/api/Cargo.toml /usr/src/app/backend/api/Cargo.toml COPY ./dummy.rs /usr/src/app/backend/api/src/lib.rs COPY ./backend/entity/Cargo.toml /usr/src/app/backend/entity/Cargo.toml COPY ./dummy.rs /usr/src/app/backend/entity/src/lib.rs COPY ./backend/migration/Cargo.toml /usr/src/app/backend/migration/Cargo.toml COPY ./dummy.rs /usr/src/app/backend/migration/src/lib.rs COPY ./backend/orm/Cargo.toml /usr/src/app/backend/orm/Cargo.toml COPY ./dummy.rs /usr/src/app/backend/orm/src/lib.rs COPY ./backend/search/Cargo.toml /usr/src/app/backend/search/Cargo.toml COPY ./dummy.rs /usr/src/app/backend/search/src/lib.rs RUN cd frontend && trunk build --release -j 1 RUN cd backend && cargo build --release -j 1 COPY . /usr/src/app RUN cp .prod .env RUN cd frontend && trunk build --release -j 1 RUN cd backend && cargo build --release -j 1 FROM alpine:latest WORKDIR /usr/src/app COPY --from=builder /usr/src/app/backend/target/wasm32-unknown-unknown/release/booksman /usr/src/app/booksman COPY --from=builder /usr/src/app/dist /usr/src/dist COPY --from=builder /usr/src/app/.env /usr/src/app/.env CMD booksman