FROM ekidd/rust-musl-builder:latest as build USER rust WORKDIR /home/rust/src/ RUN USER=rust cargo new datatrash WORKDIR /home/rust/src/datatrash COPY --chown=rust Cargo.toml Cargo.lock ./ RUN cargo build --release --features vendored COPY --chown=rust src ./src COPY --chown=rust static ./static COPY --chown=rust template ./template COPY --chown=rust init-db.sql ./init-db.sql RUN touch src/main.rs RUN cargo build --release --features vendored FROM alpine:latest ENV RUST_BACKTRACE "1" RUN mkdir /opt/datatrash WORKDIR /opt/datatrash COPY --from=build \ /home/rust/src/datatrash/target/x86_64-unknown-linux-musl/release/datatrash \ /opt/datatrash/ COPY static /opt/datatrash/static RUN mkdir /opt/datatrash/files EXPOSE 8000 ENTRYPOINT ["/opt/datatrash/datatrash"]