Build Paket Arch Linux Lewat Docker

Aditya Phra•

Dengan Docker, build paket khusus untuk Arch Linux jadi bisa tanpa perlu membuat mesin virtual (VM) atau dual-boot 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

Atau bisa masuk kontainer dulu:

cd paru

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

Lalu build:

[builder@632a02b2ae0e pkg]$ makepkg -s

Cek hasil build-an, kalau berhasil, ada file paket yang 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/