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/