Docker Image for building AUR packages

  1. Installation und Konfiguration von Docker

    Link: ArchLinux Wiki

  2. Arch Base-Image ziehen

    docker pull base/archlinux
    
  3. Image starten

    docker run -t -i base/archlinux /bin/bash
    

    und den Container updaten (Key/Id kopieren für Image-Erzeugung – das ist das Ding hinter dem root@)

    pacman -Syy
    pacman -S archlinux-keyring
    pacman -Su
    exit
    

    um im Anschluss das neue Image zu erzeugen (d2aa60a61cd2 war meine Id, tucker/archbase ist mein gewählter Name):

    docker commit -m "Updated base image" -a "Micha Alt" d2aa60a61cd2 tucker/archbase
    
  4. Image in ein Devel-Image umwandeln (Devel-Pakete installieren plus Build-User einrichten)

    docker run -t -i tucker/archbase
    

    Im Container (Id wieder kopieren):

    pacman-db-upgrade
    pacman -S base-devel
    pacman -S git namcap pkgbuild-introspection
    useradd --create-home --comment "Arch Build User" build
    exit
    

    Und den Container bzw. die Änderungen wieder als Image committen:

    docker commit eb4e8295c2fc tucker/archbase
    
  5. Workflow zum Test-Build eigener Pakete (es sollte ein Verzeichnis existieren, dass das entsprechende PKGBUILD plus event. weitere nötige Dateien enthält):

    docker run -i -t -v >>PKGBUILD-Path<<:/package tucker/archbase
    

    Im Container:

    # Container upgraden
    pacman -Syu
    
    # Eventuelle Dependencies installieren:
    pacman -S npm
    
    su - build
    cd /package
    makepkg --force
    mkaurball
    

Von Zeit zu Zeit sollte das Image aktualisiert werden, damit der initiale Container-Upgrade im Schritt 5 nicht zu aufwendig
wird. Dazu das Image starten, den Container upgraden und die Änderungen committen.

In einem weiteren Artikel werde ich ein Dockerfile erstellen, dass den Package-Build automatisiert.

Leave a Reply

Your email address will not be published. Required fields are marked *