12.2.4. Ручная (скриптовая) сборка
Для максимального контроля процесс сборки образа можно выполнить вручную:
Создать базовый контейнер:
$ ctr=$(buildah from alt:latest)
Выполнить команды внутри контейнера:
$ buildah run "$ctr" -- sh -c 'apt-get update && apt-get install -y curl bash && apt-get clean'
$ buildah copy "$ctr" hello.sh /app/hello.sh
Настроить метаданные образа:
$ buildah config --cmd '["/app/hello.sh"]' "$ctr"
Зафиксировать изменения в виде образа:
$ buildah commit "$ctr" myalt
Удалить контейнер:
$ buildah rm "$ctr"
Пример создания минимального образа:
#!/bin/bash
ctr=$(buildah from scratch)
buildah copy $ctr ./my-binary /app
buildah config --entrypoint '["/app"]' $ctr
buildah commit $ctr minapp:slim
buildah rm $ctr
Получается ультраминимальный образ (только бинарник), без OS-слоёв.
Образ scratch не содержит операционной системы, libc или shell и подходит только для статически скомпонованных бинарных файлов.