mirror of
https://github.com/sliverarmory/reflektor
synced 2026-08-25 09:14:48 +00:00
57 lines
1.6 KiB
Docker
57 lines
1.6 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
ARG GO_VERSION=1.26.6
|
|
ARG ZIG_VERSION=0.14.0
|
|
ARG RUST_VERSION=1.94.0
|
|
|
|
FROM --platform=$TARGETPLATFORM golang:${GO_VERSION}-bookworm
|
|
|
|
ARG TARGETARCH
|
|
ARG ZIG_VERSION
|
|
ARG RUST_VERSION
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV CARGO_HOME=/opt/reflektor-cargo
|
|
ENV RUSTUP_HOME=/opt/reflektor-rustup
|
|
ENV PATH=/opt/reflektor-cargo/bin:${PATH}
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
xz-utils \
|
|
file \
|
|
binutils \
|
|
libcurl4-openssl-dev \
|
|
bash \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN set -eux; \
|
|
case "${TARGETARCH}" in \
|
|
amd64) zig_arch="x86_64" ;; \
|
|
arm64) zig_arch="aarch64" ;; \
|
|
386) zig_arch="x86" ;; \
|
|
*) echo "unsupported TARGETARCH=${TARGETARCH}" >&2; exit 1 ;; \
|
|
esac; \
|
|
curl -fsSL "https://ziglang.org/download/${ZIG_VERSION}/zig-linux-${zig_arch}-${ZIG_VERSION}.tar.xz" -o /tmp/zig.tar.xz; \
|
|
tar -xJf /tmp/zig.tar.xz -C /opt; \
|
|
ln -sf "/opt/zig-linux-${zig_arch}-${ZIG_VERSION}/zig" /usr/local/bin/zig; \
|
|
zig version
|
|
|
|
RUN set -eux; \
|
|
case "${TARGETARCH}" in \
|
|
amd64) rust_host="x86_64-unknown-linux-gnu" ;; \
|
|
arm64) rust_host="aarch64-unknown-linux-gnu" ;; \
|
|
386) rust_host="i686-unknown-linux-gnu" ;; \
|
|
*) echo "unsupported TARGETARCH=${TARGETARCH}" >&2; exit 1 ;; \
|
|
esac; \
|
|
curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs -o /tmp/rustup-init.sh; \
|
|
sh /tmp/rustup-init.sh -y --profile minimal --default-host "${rust_host}" --default-toolchain "${RUST_VERSION}"; \
|
|
rm -f /tmp/rustup-init.sh; \
|
|
rustc --version; \
|
|
cargo --version
|
|
|
|
WORKDIR /workspace
|
|
COPY . /workspace
|
|
|
|
CMD ["/bin/bash", "/workspace/testdata/docker/run-linux-memmod-tests.sh"]
|