Files
docker-images/arch-builder/Dockerfile
Walter Oggioni f06729a944
All checks were successful
CI / Build arch-builder docker images (push) Successful in 52m26s
trigger build with new compiler
2025-03-10 16:26:15 +08:00

125 lines
5.2 KiB
Docker

FROM archlinux:latest AS base
COPY mirrorlist /etc/pacman.d/mirrolist
RUN pacman-key --init
RUN pacman-key --refresh-keys
RUN pacman -Syu --noconfirm
RUN pacman -S --noconfirm --needed curl rustup
RUN mkdir downloads
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/aarch64-unknown-linux-musl-gcc/13.2.0/aarch64-unknown-linux-musl-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/aarch64-unknown-linux-musl-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/aarch64-unknown-linux-musl/bin/aarch64-unknown-linux-musl-gcc /usr/local/bin/aarch64-linux-musl-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/x86_64-unknown-linux-musl-gcc/14.2.0/x86_64-unknown-linux-musl-gcc-14.2.0-1-x86_64.pkg.tar.zst \
-o downloads/x86_64-unknown-linux-musl-gcc-14.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/x86_64-unknown-linux-musl/bin/x86_64-unknown-linux-musl-gcc /usr/local/bin/x86_64-linux-musl-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/arm-unknown-linux-musleabihf-gcc/13.2.0/arm-unknown-linux-musleabihf-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/arm-unknown-linux-musleabihf-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/arm-unknown-linux-musleabihf/bin/arm-unknown-linux-musleabihf-gcc /usr/local/bin/arm-linux-musleabihf-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/arm-unknown-linux-musleabi-gcc/13.2.0/arm-unknown-linux-musleabi-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/arm-unknown-linux-musleabi-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/arm-unknown-linux-musleabihf/bin/arm-unknown-linux-musleabi-gcc /usr/local/bin/arm-linux-musleabi-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/x86_64-w64-mingw32-gcc/13.2.0/x86_64-w64-mingw32-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/x86_64-w64-mingw32-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-gcc /usr/local/bin/x86_64-pc-windows-gnu-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/arm-unknown-linux-musleabi-zlib/1.3.1/arm-unknown-linux-musleabi-zlib-1.3.1-1-x86_64.pkg.tar.zst \
-o downloads/arm-unknown-linux-musleabi-zlib-1.3.1-1-x86_64.pkg.tar.zst
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/aarch64-unknown-linux-musl-zlib/1.3.1/aarch64-unknown-linux-musl-zlib-1.3.1-1-x86_64.pkg.tar.zst \
-o downloads/aarch64-unknown-linux-musl-zlib-1.3.1-1-x86_64.pkg.tar.zst
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/x86_64-unknown-linux-musl-zlib/1.3.1/x86_64-unknown-linux-musl-zlib-1.3.1-1-x86_64.pkg.tar.zst \
-o downloads/x86_64-unknown-linux-musl-zlib-1.3.1-1-x86_64.pkg.tar.zst
RUN pacman -U downloads/*.pkg.tar.* --noconfirm
RUN rm -rf downloads
COPY makepkg/* /etc/
RUN useradd luser -G users -u 1000 -s /bin/bash -m -d /home/luser
RUN pacman -S --noconfirm --needed \
git \
cmake \
base-devel \
meson \
tar \
xz \
ccache \
lzop \
lz4 \
bzip2 \
gzip \
upx
FROM base AS kernel
RUN pacman -S --noconfirm --needed \
jre21-openjdk \
bc \
cpio \
gettext \
libelf \
pahole \
perl \
python \
python-pip \
python-build \
python-wheel \
graphviz \
imagemagick \
python-sphinx \
python-yaml \
openssh \
rust-bindgen \
texlive-latexextra
USER luser
WORKDIR /home/luser
FROM base AS rust
RUN mkdir -p /etc/cargo
COPY config.toml /.cargo/
RUN pacman -S --noconfirm --needed \
rustup \
llvm \
clang
FROM rust AS rust-full
RUN pacman -S --noconfirm --needed \
hidapi \
protobuf
FROM rust-full AS rust-full-rootless
USER luser
WORKDIR /home/luser
RUN mkdir .cargo
RUN rustup toolchain install stable-x86_64-unknown-linux-gnu
RUN rustup target add \
x86_64-unknown-linux-musl \
x86_64-unknown-linux-gnu \
armv7-unknown-linux-musleabihf \
arm-unknown-linux-musleabi \
aarch64-unknown-linux-musl \
aarch64-unknown-linux-gnu
FROM rust-full AS gitea_act_runner
RUN pacman -S --noconfirm nodejs npm docker docker-buildx btrfs-progs
RUN mkdir /downloads
WORKDIR /downloads
RUN curl --retry 3 -OJ https://gitea.woggioni.net/api/packages/woggioni/generic/gitea-act-runner/0.2.10/gitea-act-runner-0.2.10-1-x86_64.pkg.tar.zst
RUN curl --retry 3 -OJ https://gitea.woggioni.net/api/packages/woggioni/generic/jdk21-graalvm-bin/21.0.6/jdk21-graalvm-bin-21.0.6-1-x86_64.pkg.tar.zst
RUN curl --retry 3 -OJ https://gitea.woggioni.net/api/packages/woggioni/generic/jdk23-graalvm-bin/23.0.2/jdk23-graalvm-bin-23.0.2-1-x86_64.pkg.tar.zst
RUN curl --retry 3 -OJ https://gitea.woggioni.net/api/packages/woggioni/generic/jdk21-graalvm-ce-bin/21.0.2/jdk21-graalvm-ce-bin-21.0.2-1-x86_64.pkg.tar.zst
RUN curl --retry 3 -OJ https://gitea.woggioni.net/api/packages/woggioni/generic/jdk23-graalvm-ce-bin/23.0.2/jdk23-graalvm-ce-bin-23.0.2-1-x86_64.pkg.tar.zst
RUN pacman -U --noconfirm *.pkg.tar.*
WORKDIR /
RUN rm -rf /downloads
RUN --mount=type=bind,source=woggioni.net.ca.pem,target=/root.pem trust anchor root.pem
USER luser
WORKDIR /home/luser
CMD /usr/lib/gitea/act_runner/act_runner daemon --config /var/lib/gitea/act_runner.yaml