FROM --platform=${BUILDPLATFORM} pull registry.opensuse.org/opensuse/bci/rust:latest as builder
RUN \
if [ "${TARGETPLATFORM}" != "${BUILDPLATFORM}" ]; then \
if [ "${TARGETPLATFORM}" == "linux/amd64" ]; then \
zypper in -y cross-x86_64-gcc15 ; \
rustup target add x86_64-unknown-linux-gnu ; \
elif [ "${TARGETPLATFORM}" == "linux/arm64" ]; then \
zypper in -y cross-aarch64-gcc15 ; \
rustup target add aarch64-unknown-linux-gnu ; \
fi; \
fi ; \
if [ "${TARGETPLATFORM}" == "linux/amd64" ]; then \
export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu ; \
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-suse-linux-gcc-15 ; \
export CC_X86_64_UNKNOWN_LINUX_GNU=x86_64-suse-linux-gcc-15 ; \
export CXX_X86_64_UNKNOWN_LINUX_GNU=x86_64-suse-linux-g++-15 ; \
elif [ "${TARGETPLATFORM}" == "linux/arm64" ]; then \
export CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu ; \
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-suse-linux-gcc-15 ; \
export CC_AARCH64_UNKNOWN_LINUX_GNU=aarch64-suse-linux-gcc-15 ; \
export CXX_AARCH64_UNKNOWN_LINUX_GNU=aarch64-suse-linux-g++-15 ; \
fi
WORKDIR /app
COPY . ./
RUN cargo build --release && mv "/app/target/${CARGO_BUILD_TARGET}" /app/target/final
FROM --platform=${TARGETPLATFORM} registry.suse.com/bci/bci-micro:latest
COPY --link --from=builder /app/target/final/release/hkj /usr/local/bin/hkj
CMD ["hkj"]