Build Paket Arch Linux Lewat Docker

Aditya Phra

Dengan Docker build paket khusus untuk Arch Linux jadi bisa meskipun host bukan Arch Linux, tanpa perlu membuat mesin virtual (VM) Arch Linux.

Membuat Image

Pertama, buatlah file Dockerfile yang diisi dengan skrip di bawah:

FROM ghcr.io/archlinux/archlinux:latest

RUN pacman -Syu --noconfirm && \
    pacman -S --noconfirm base-devel git

RUN useradd -m builder && \
    mkdir -p /etc/sudoers.d && \
    echo "builder ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/builder

RUN mkdir -p /etc/makepkg.conf.d && \
    echo "OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)" \
        > /etc/makepkg.conf.d/custom_options.conf && \
    echo 'PACKAGER="YOUR_NAME <YOUR_EMAIL>"' \
        >> /etc/makepkg.conf.d/custom_options.conf

USER builder
WORKDIR /home/builder

ENTRYPOINT ["/usr/bin/bash"]

Sesuaikan nama PACKAGER kemudian build image docker dan beri nama builder:

docker build -t builder .

Tunggu proses build, kira-kira butuh waktu dua menitan.

Cek hasil build-an:

docker images

Kalau di situ ada image bernama builder artinya proses build image docker berhasil.

Build Paket Arch Linux

Langsung ke percobaan build paket dengan Docker, contoh paket yang akan di-build itu paru.

Unduh paket paru dari AUR:

git clone https://aur.archlinux.org/paru.git

Build dengan docker:

cd paru

docker run -it --rm \
  -v .:/home/builder/pkg \
  -w /home/builder/pkg \
  builder \
  makepkg -s

Setelah selesai, cek hasil build-an nanti ada file paket berakhiran .zst:

$ ls -lh
total 12M
-rw-r--r-- 1 aditya aditya 3.4M Mar  5 00:51 paru-2.1.0-2-x86_64.pkg.tar.zst
-rw-r--r-- 1 aditya aditya 7.9M Mar  5 00:43 paru-2.1.0.tar.gz
drwxr-xr-x 3 aditya aditya 4.0K Mar  5 00:51 pkg/
-rw-rw-r-- 1 aditya aditya 1.7K Mar  5 00:42 PKGBUILD
drwxr-xr-x 3 aditya aditya 4.0K Mar  5 00:43 src/