Создание образа с нуля
Данная статья содержит базовые шаги для создания собственного образа на основе ALT Atomic Core или другого существующего образа ALT Atomic.
Подготовка репозитория
0. Первые шаги
Перед созданием собственного образа рекомендуется исследовать другие уже существующие образы:
ALT Linux Space
Сборка образов ALT Atomic происходит на сервисе ALT Linux Space в виде OCI-контейнеров.
Собранный контейнер скачивается на целевой машине и развёртывается как полноценный атомарный дистрибутив с помощью Live-установщика. Данный метод можно назвать «Установкой по сети» (Netinstall), так как образ-установщик не предоставляет в себе заранее подготовленной системы.
Для создания собственного образа, необходимо создать собственный аккаунт на ALT Linux Space:
- Перейдите на главную страницу ALT Linux Space;
- Нажмите на кнопку «Вход» в правом верхнем углу;
- Нажмите «Войти через ALT Linux ID»;
- Из предложенного списка выберите сторонний сервис авторизации и выполните вход в аккаунт. Если вы являетесь членом ALT Linux Team, то авторизоваться по своим данным;

Готово. Аккаунт на ALT Linux Space создан.
Выбор базового образа
Для того, чтобы создать собственный образ, необходимо использовать какой-то другой образ в качестве основы.
Можно взять один из вышеперечисленных образов или другой, созданный сообществом.
Отдельно в организации ALT Atomic представлены образы ALT Atomic Minimal — образы-болванки для создания собственной версии ALT Atomic на каком-либо графическом стеке.
Цели образа
При создании собственной редакции ALT Atomic важно сформулировать конечный результат: если это новый образ «от сообщества для сообщества», то он должен покрывать базовые задачи и, если это предполагается, решать поставленные перед ним задачи. От этого может зависеть программный набор образа, его предустановки, брендинг и прочее.
1. Репозиторий
Для упрощения процесса создания образа ALT Atomic, был подготовлен шаблон репозитория, где уже присутствуют подготовленные пример конфига, простой рабочий поток для сборки образа в CI/CD и шаблон Containerfile:
- Перейдите в шаблон репозитория;
- Нажмите «Использовать этот шаблон»;
- В разделе «Название репозитория» укажите название репозитория, который будет добавлен на ваш аккаунт;
- В разделе «Элементы шаблона» выберите «Содержимое Git (ветвь по умолчанию)»;
- Нажмите «Создать репозиторий»;

Готово. На аккаунте был создан репозиторий с шаблонными элементами для создания собственного образа ALT Atomic.
2. Настройка репозиторий
Для того, чтобы образ собирался в CI/CD, необходимо включить и настроить данную функциональность:
- Откройте настройки созданного репозитория;
- Нажмите на «Разделы» в боковом меню;
- Откройте раздел «Обзор»;
- В основной части страницы включите пункты «Пакеты» и «Действия»
- Нажмите «Сохранить настройки»;

Готово. Репозиторий подготовлен к формированию OCI-контейнеров в виде пакетов.
3. Токен
Получение токена:
- Нажмите на профиль в верхнем правом углу и перейдите в «Настройки»;
- Перейдите в «Приложения»;
- Укажите любое имя токена (ни на что не влияет);
- Раскройте список «Выбрать разрешения»
- Установите значение для «package» на «Чтение и запись»
- Нажмите «Создать токен»

После этого страница автоматически обновится и в верхней части страницы появится набор из 16-разрядных значений — это токен, который необходимо скопировать (или сохранить иным способом).

Примечание
В примере будет использоваться ненастоящий токен 1234567890abcdef1234567890abcdef12345678
Использование токена:
- Перейдите в Настройки ранее созданного репозитория с ALT Atomic
- Нажмите на «Действия» в боковом меню;
- Откройте раздел «Секреты»;
- Нажмите «Добавить секрет»;

В открывшемся диалоге укажите название — REGISTRY_TOKEN, значение — скопированный токен и нажмите «Подтвердить».

Готово. Теперь токен готов к использованию.

4. Тестовый запуск CI/CD
Необходимо проверить, корректно ли был добавлен токен:
- В созданном ранее репозитории перейдите в раздел «Действия»;
- Нажмите на
build.ymlв боковом меню; - Нажмите на «Выполнить рабочий поток» в основной части страницы;
- Нажмите «Выполнить рабочий поток» в выпадающем меню.

После запуска рабочего потока появится строка о запущенном потоке.

Нажав по названию потока, можно перейти на страницу его состояния.

После некоторого ожидания рабочий поток завершится.
Если рабочий поток прервался с ошибкой о неверном токене, попробуйте заново создать токен и добавить его в секреты репозитория.
Если рабочий поток завершился корректно, то на аккаунте, в разделе «Пакеты» появится готовый контейнер-болванка, созданный данным рабочим потоком.
Формирование собственного образа
После того, как тестовый пакет успешно создался, можно начинать наполнять образ. Для этого используются конфигфурационные файлы в формате YAML, где декларативно описывается, что и какие модули делают. Подробнее о модулях, доступных для формирования образа, в статье «Конфигурирование образа»
Основные правила формирования образа
Внимание!
При отсутствии полного понимания действий не рекомендуется отходить от ниже описанных правил
По умолчанию шаблон репозитория придерживается следующих правил:
- Все файлы, из которых строится образ находятся в директории
src; - Первым выполоняемым конфигом является
image.yml. Из него можно подключить другие конфигурационные файлы; - В директории
resourcesлежат файлы конфигурации и другие файлы, которые необходимы для сборки; - Описательный файл контейнера (Containerfile) находится по пути
container-files/main. В нём можно изменить первый запускаемый конфигурационный файл, директорию ресурсов, передаваемые в сборку аргументы и другое; - Файл рабочего потока находится по пути
.forgejo/workflows/build.yml. В нём можно изменить параметры сборки, целевой Containerfile, переадаваемые в него аргументы, директорию запуска процесса сборки и другое.