29 lines
1.1 KiB
Docker
29 lines
1.1 KiB
Docker
FROM --platform=$BUILDPLATFORM gitea.woggioni.net/woggioni/arch-builder:rust-full AS base
|
|
|
|
ARG TARGETPLATFORM
|
|
|
|
FROM base AS builder-linux_amd64
|
|
ENV RUST_TARGET="x86_64-unknown-linux-musl"
|
|
ENV CC_x86_64-unknown-linux-musl=/opt/x-tools/x86_64-unknown-linux-musl/bin/x86_64-unknown-linux-musl-gcc
|
|
ENV CXX_x86_64-unknown-linux-musl=/opt/x-tools/x86_64-unknown-linux-musl/bin/x86_64-unknown-linux-musl-g++
|
|
|
|
FROM base AS builder-linux_arm64
|
|
ENV RUST_TARGET="aarch64-unknown-linux-musl"
|
|
ENV CC_aarch64_unknown_linux_musl=/opt/x-tools/aarch64-unknown-linux-musl/bin/aarch64-unknown-linux-musl-gcc
|
|
ENV CXX_aarch64_unknown_linux_musl=/opt/x-tools/aarch64-unknown-linux-musl/bin/aarch64-unknown-linux-musl-g++
|
|
|
|
|
|
FROM builder-${TARGETPLATFORM/\//_} AS build
|
|
RUN rustup target add $RUST_TARGET
|
|
ADD --chown=luser:users . .
|
|
RUN cargo build --locked --release --target "$RUST_TARGET"
|
|
RUN cp "target/${RUST_TARGET}/release/intrasys" "./intrasys.x"
|
|
|
|
|
|
FROM scratch AS release
|
|
COPY --from=build --chown=9999:9999 /home/luser/intrasys.x /usr/local/bin/intrasys
|
|
USER 9999
|
|
ENTRYPOINT ["/usr/local/bin/intrasys"]
|
|
ENV INTRASYS_HOST="0.0.0.0"
|
|
EXPOSE 8080/tcp
|