9.7 KiB
Документ поддержки концепции образов Docker для проекта
timestamp: 2024/08/12
Debian | codename | status |
---|---|---|
sid |
unstable |
|
trixie |
testing |
|
bookworm |
Stable |
|
bullseye |
LTS \ oldstable |
|
buster |
deprecated , oldoldstable |
|
stretch |
deprecated |
|
jessie |
deprecated |
|
wheezy |
deprecated |
|
squeeze |
deprecated |
Введение
Репозиторий epicmorg/docker
содержит коллекцию образов Docker
, организованных по версиям Debian
и используемых для создания как базовых, так и конечных образов продуктов. Основная цель данной концепции — обеспечить упорядоченность и актуальность образов в зависимости от их использования и статуса
. В этом документе описан текущий подход к организации образов и планируемые изменения для улучшения управления версиями и поддержки.
Организация образов
Базовые образы
В директории linux/ecosystem/epicmorg/debian
расположены образы Docker
, основанные на различных версиях Debian (с 6
по 12
). Все базовые образы могут быть классифицированы на следующие категории:
-
Образ
slim
:- Наследуется от официальных образов Debian (версии 6-12).
- Содержит минимальный набор правок: добавление папок, корневых сертификатов и настройка APT.
-
Образ
main
:- Наследуется от образа
slim
. - Включает базовый набор программного обеспечения (например,
mc
,wget
,htop
). - Предназначен как основной образ для создания более сложных финальных образов, таких как Nginx.
- Наследуется от образа
-
Образ
develop
:- Наследуется от образа
main
. - Включает инструменты для сборки и разработки (например,
ninja
,make
,cmake
).
- Наследуется от образа
-
Образы
nodejs
:- Включают версии Node.js (с 0.4 до последней).
- Наследуются от образа
main
. - Содержат Node.js, npm, npmx, yarn и заголовочные файлы, установленные из tar-архивов.
-
Образы
jdk
:- Включают версии JDK (с 6 по 21).
- Имеют два тега:
- Основной тег: наследуется от
main
. - Девелоперский тег: наследуется от
develop
.
- Основной тег: наследуется от
Конечные образы
В директории linux/ecosystem
находятся образы для конечных продуктов (например, apache2
, nginx
, jira
). Эти образы обычно наследуются от соответствующих базовых образов.
Изменение подхода к разработке
Для улучшения управления образами и обеспечения актуальности предлагается следующий подход:
-
Поддержка базовых образов:
- Все существующие базовые образы (
slim
,main
,develop
,nodejs
,jdk
) сохранятся без изменений для каждой версии Debian. - Базовые образы будут пересобираться периодически, чтобы учесть обновления и бекпорты.
- Все существующие базовые образы (
-
Введение концепции
upstream
иdeprecated
:Upstream
: Актуальные конечные образы будут наследоваться от базовых образов для последней стабильной версии Debian. В данный момент это Debian 12. При выходе новой стабильной версии Debian, конечные образы будут переведены на новую версию.Deprecated
: Для устаревших версий базовых образов будут доступны только сами базовые образы. Конечные образы не будут обновляться для устаревших версий.
-
Управление версиями:
- Актуальные образы будут пересобираться на основе последней
стабильной
версииDebian
. - В актуальные образы входят ветки
current
(стабильная
, или же12
) как основная, а так жеLTS
но облегченная (11
) - буду собираться только базовые образы. - Прошлая
LTS
ветка перестает поддерживаться, когда назначается новая. - При выпуске новой версии
Debian
(например,13
), все конечные образы будут обновлены и переведены на новую версиюDebian
, если она станет стабильной.
- Актуальные образы будут пересобираться на основе последней
-
Периодическое обновление образов:
Все версии
базовых образов, включаяустаревшие
, будут периодически пересобираться для включения обновлений и бекпортов.
-
Добавление новых базовых образов:
- Начиная с текущей
версии
апстрима (12
), в нее будут постепенно добавлены дополнительные базовые образы, такие какPHP
иPython
и др. Эти новые базовые образы не будут бекпортированы в предыдущие устаревшие версии. Однако при переходе апстрима на новую версию (например,13
), новые базовые образы также будут перенесены в нее и останутся в предыдущей версии (например,12
).
- Начиная с текущей
Заключение
Этот подход позволит лучше управлять версиями и поддерживать актуальность образов в репозитории. Переход на концепцию upstream и deprecated поможет сосредоточиться на поддержке актуальных версий продуктов и обеспечит более стабильное и предсказуемое окружение для конечных пользователей. Введение новых базовых образов дополнительно расширит функциональность и гибкость доступных Docker-образов.