FROM rust:1-alpine as builder ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL sparse RUN apk add --no-cache musl-dev WORKDIR /home/rust/src COPY Cargo.toml /home/rust/src/ COPY Cargo.lock /home/rust/src/ RUN mkdir /home/rust/src/src && \ echo 'fn main() {}' > /home/rust/src/src/main.rs RUN cargo fetch RUN cargo build --release RUN rm -f /home/rust/src/src/main.rs COPY src /home/rust/src/src RUN sudo chown -R rust:rust . && \ touch /home/rust/src/src/main.rs RUN cargo build --release FROM scratch COPY static /static COPY templates /templates COPY --from=builder /home/rust/src/target/x86_64-unknown-linux-musl/release/qchgk_web / VOLUME /db EXPOSE 8088/tcp ENTRYPOINT ["/qchgk_web"]