Files
packages-build-tools/tools/artix-dinit-dev-env/Dockerfile
T

52 lines
1.6 KiB
Docker

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 <hive@kira-linux.org>"\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"]