FROM artixlinux/artixlinux:base-dinit # Add kira-base repo RUN pacman-key --init \ && pacman-key --recv-keys CAF78E41A83A6D64 \ && pacman-key --lsign-key CAF78E41A83A6D64 \ && printf '[kira-base]\nSigLevel = Required TrustedOnly\nServer = https://repos.kira-linux.org/kira-base/x86_64\n' >> /etc/pacman.conf # Update mirrors # RUN pacman -Syu --noconfirm artix-mirrorlist && mv /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist COPY ./mirrorlist /etc/pacman.d/mirrorlist # Update system RUN pacman -Suy --noconfirm # Install necessary build tools RUN pacman -S --noconfirm base-devel git wget sudo make pacman-contrib binutils rust rust-bindgen rust-src libgcc graphviz imagemagick python python-sphinx python-yaml texlive-latexextra llvm # Clean pacman cache RUN pacman -Scc # Config to use 16 thread for building RUN printf 'MAKEFLAGS="-j16"\n' > /etc/makepkg.conf.d/j16.conf # Add packager RUN printf 'PACKAGER="Build Bee "\n' > /etc/makepkg.conf.d/77-packager.conf # Create a build user RUN useradd -m builduser \ && passwd -d builduser \ && printf 'builduser ALL=(ALL) ALL\n' >> /etc/sudoers COPY ./makepkg.conf /etc/makepkg.conf COPY ./rust.conf /etc/makepkg.conf.d/rust.conf # Set working directory WORKDIR /home/builduser # Build the package as the non-root user # -s: install missing dependencies # -c: clean build directory after successful build # --noconfirm: auto-confirm prompts USER builduser # Do NOT copy source code or run makepkg here. # Leave the container ready to accept any mounted directory. CMD ["bash"]