August 24th, 2018

Book

ArchLinux i686 Docker images

https://hub.docker.com/r/nponeccop/archlinux-microcontainers/~/dockerfile/

Провёл полдня в работе "на бумажке", т.к. Кларо лежал. Вторые полдня занимался "приседаниями" чтобы завелись имиджи.

nponeccop/archlinux-pacstrap-i686 обошелся почти без приседаний: mkrootfs.sh. Интересно, что там лжеприседания, которые не работают. Также обнаружил, что официальный аналог debootstrap tarball у нас в i686-версии отсутствует.

В-общем есть пакет arch-install-tools, в котором утилита pacstrap может собирать чруты, и это имидж из неё.

Но оказалось, см. archlinux-base-i686/Dockerfile, что наступает несколько жоп, из-за которых голый pacstrap не работает, и надо приседать:

- в группе base в Арче лежат заведомо дебильные пакеты типа cryptsetup и e2fstools, которые в контейнере не нужны. Кроме того, pacman -Qg base перечисляет все-все пакеты из группы, а не только топовые. Короче чем перечислять список пакетов, которые НЕ надо ставить, оказалось проще перечислить то, что НАДО
- в триггере установки gpgme, который зависимость pacman, наблюдалась двойная жопа: а) в pacstrap-имидже нет coreutils, б) он генерирует какие-то ключи, а энтропии в urandom не хватало, поэтому пришлось поставить и запустить haveged
- без setarch pacstrap пытается искать 64-битный арч на зеркалах 32-битного арча, а его там нет и нам нужен именно 32-битный
- сам setarch идет в util-linux, которых внезапно нет в base
- pacstrap в процессе хочет монтировать в НОВУЮ rootfs специальные файловые системы, что не работает в докере

В-общем, завтра будет вторая итерация.