Использование dnf
Образ контейнера Fedora/CentOS bootc по умолчанию включает dnf.
Использование dnf как части сборки контейнера
Ключевой целью верхнего уровня этого проекта является поддержка и поощрение создания пользовательских производных контейнерных образов с использованием всех инструментов и методов, применимых к «прикладным» контейнерам.
Во многих примерах используется RUN dnf install. В использовании dnf в контейнере на основе bootc нет ничего особенного по сравнению с прикладным контейнером; это точно такой же код.
Использование dnf во время выполнения
Система монтируется только для чтения при «развёртывании» в качестве физической или виртуальной машины.
В настоящее время, в зависимости от версии, dnf install, например, может начать работать, но завершится ошибкой, например:
error: can’t create transaction lock on /usr/share/rpm/.rpm.lock (Read-only file system)
Это известная ошибка; см., например, этот PR.
rpm-ostree
В настоящее время rpm-ostree также включён в базовый образ, хотя это может измениться в будущих версиях. Подробнее см. rpm-ostree.
Развёртывание образов на основе dnf
Концептуально было бы возможно расширить инструментарий, окружающий fedora-bootc, чтобы также включить модель, в которой это будет работать:
А затем передать это, например, Anaconda для записи на диск.
В этой теоретической модели в развёрнутом образе не было бы `bootc`, и обновления можно было бы выполнять напрямую с помощью `dnf`.
Основными недостатками этого были бы:
- Потеря транзакционных обновлений и неизменяемости во время выполнения по умолчанию
- Потеря поддержки обновления содержимого, не являющегося RPM
В настоящее время такая модель не входит в непосредственный фокус этого проекта.
Однако технически это было бы лишь небольшим расширением существующей поддержки Anaconda для развёртывания сырого tar-архива, и если бы кто-то был заинтересован в работе над этим, это можно было бы добавить в общий объём проектов Fedora/CentOS, связанных с контейнерами.
Want to help? Learn how to contribute to Fedora Docs ›