#################### ## Base container ## #################### FROM archlinux:base-devel AS base LABEL org.opencontainers.image.title="actions-docker" LABEL org.opencontainers.image.description="StarOpenSource's Docker image for CI/CD pipelines." LABEL org.opencontainers.image.authors="JeremyStarâ„¢ (@jeremystartm)" LABEL org.opencontainers.image.url="https://git.staropensource.de/StarOpenSource/actions-docker/src/branch/develop/README.md" LABEL org.opencontainers.image.documentation="" LABEL org.opencontainers.image.source="https://git.staropensource.de/StarOpenSource/actions-docker" LABEL org.opencontainers.image.licenses="AGPL-3.0-or-later" LABEL org.opencontainers.image.version="" LABEL org.opencontainers.image.revision="" LABEL org.opencontainers.image.created="" # Tweak pacman.conf RUN sed 's/\#ParallelDownloads = 5/ParallelDownloads = 15/g' -i /etc/pacman.conf # Initialize pacman keyring RUN pacman-key --init RUN pacman-key --populate # Update system RUN pacman -Syu --noconfirm # Add Chaotic-AUR repository RUN pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com; \ pacman-key --lsign-key 3056513887B78AEB; \ pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'; \ pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; \ echo -e "[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist" >> /etc/pacman.conf; \ pacman -Sy # Install packages required for actions to function properly RUN pacman -S --noconfirm nodejs git #################### ## Java container ## #################### FROM base AS java # Install OpenJDK 21, various JVM languages & Gradle RUN pacman -S --noconfirm jdk21-openjdk # Install various JVM languages RUN pacman -S --noconfirm kotlin groovy scala # Install build tools RUN pacman -S --noconfirm gradle maven