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/13.2.0/x86_64-unknown-linux-musl-gcc-13.2.0-1-x86_64.pkg.tar.zst \ -o downloads/x86_64-unknown-linux-musl-gcc-13.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 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