FROM docker.io/rust:1-alpine3.20 AS builder RUN mkdir /db RUN echo "hesinde:x:2222:2222:Linux User,,,:/:/app" > /passwd RUN apk --no-cache add \ musl-dev ENV CARGO_CARGO_NEW_VCS="none" ENV CARGO_BUILD_RUSTFLAGS="-C target-feature=+crt-static" WORKDIR /work COPY . . RUN cargo build --release --target=$(arch)-unknown-linux-musl RUN cp "./target/$(arch)-unknown-linux-musl/release/hesinde-sync" /app FROM scratch COPY --from=builder /passwd /etc/passwd COPY --from=builder /app /app COPY --from=builder --chown=2222: /db /db USER hesinde ENTRYPOINT ["/app", "--address", "[::]:3000"] EXPOSE 3000 VOLUME ["/db"]