FROM archlinux:latest RUN pacman-key --refresh-keys RUN pacman -Syu --noconfirm RUN pacman -S --noconfirm git rustup cmake base-devel meson 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-woggioni-linux-musl/bin/x86_64-woggioni-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 pacman -U downloads/*.pkg.tar.* --noconfirm RUN rm -rf downloads COPY makepkg-aarch64.conf /etc/makepkg-aarch64.conf COPY makepkg-armv7h.conf /etc/makepkg-armv7h.conf RUN useradd luser -G users -u 1000 -s /bin/bash -m -d /home/luser USER luser WORKDIR /home/luser RUN rustup toolchain install stable-x86_64-unknown-linux-gnu RUN rustup target add \ x86_64-unknown-linux-musl \ x86_64-unknown-linux-gnu \ wasm32-wasi \ armv7-unknown-linux-musleabihf \ arm-unknown-linux-musleabi \ aarch64-unknown-linux-musl \ aarch64-unknown-linux-gnu ENTRYPOINT /bin/bash