Files
aralez/Dockerfile
T
2026-09-19 12:41:38 +02:00

50 lines
1.7 KiB
Docker

# syntax = docker/dockerfile:1.22
########################################
FROM rust:1.98-trixie AS builder
ARG TARGETARCH
RUN apt-get update && \
apt-get install -y build-essential make cmake pkg-config libssl-dev musl-dev musl-tools
RUN case "${TARGETARCH}" in \
amd64) \
apt-get install -y --no-install-recommends gcc-x86-64-linux-gnu && \
rustup target add x86_64-unknown-linux-gnu; \
rustup target add x86_64-unknown-linux-musl; \
;; \
arm64) \
apt-get install -y --no-install-recommends gcc-aarch64-linux-gnu && \
rustup target add aarch64-unknown-linux-gnu; \
rustup target add aarch64-unknown-linux-musl; \
;; \
*) echo "Unsupported architecture: ${TARGETARCH}" >&2; exit 1 ;; \
esac
RUN rustup component add rustfmt clippy && \
cargo install cargo-deny
RUN ARCH=$(case "${TARGETARCH}" in \
amd64) echo "x86_64" ;; \
arm64) echo "aarch64" ;; \
*) echo "${TARGETARCH}" ;; \
esac) && curl -LO https://ziglang.org/download/0.16.0/zig-${ARCH}-linux-0.16.0.tar.xz \
&& tar -xf zig-${ARCH}-linux-0.16.0.tar.xz -C /opt \
&& ln -s /opt/zig-${ARCH}-linux-0.16.0/zig /usr/local/bin/zig
RUN echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list && \
apt-get update && apt-get install -y goreleaser
RUN cargo install cargo-binstall --locked && \
cargo binstall cargo-zigbuild --no-confirm
COPY [".", "/src"]
########################################
FROM --platform=${TARGETARCH} gcr.io/distroless/cc-debian13:nonroot AS release
ARG TARGETPLATFORM
COPY ${TARGETPLATFORM}/aralez /usr/local/bin/aralez
ENTRYPOINT ["/usr/local/bin/aralez"]