docker-scripts/SUPPORT.ru.md
2024-08-19 21:04:03 +03:00

9.7 KiB
Raw Blame History

Документ поддержки концепции образов Docker для проекта

timestamp: 2024/08/12

Debian codename status
GHA sid unstable
GHA trixie testing
GHA bookworm Stable
GHA bullseye LTS \ oldstable
GHA buster deprecated, oldoldstable
GHA stretch deprecated
GHA jessie deprecated
GHA wheezy deprecated
GHA squeeze deprecated

Введение

Репозиторий epicmorg/docker содержит коллекцию образов Docker, организованных по версиям Debian и используемых для создания как базовых, так и конечных образов продуктов. Основная цель данной концепции — обеспечить упорядоченность и актуальность образов в зависимости от их использования и статуса. В этом документе описан текущий подход к организации образов и планируемые изменения для улучшения управления версиями и поддержки.

Организация образов

Базовые образы

В директории linux/ecosystem/epicmorg/debian расположены образы Docker, основанные на различных версиях Debian (с 6 по 12). Все базовые образы могут быть классифицированы на следующие категории:

  1. Образ slim:

    • Наследуется от официальных образов Debian (версии 6-12).
    • Содержит минимальный набор правок: добавление папок, корневых сертификатов и настройка APT.
  2. Образ main:

    • Наследуется от образа slim.
    • Включает базовый набор программного обеспечения (например, mc, wget, htop).
    • Предназначен как основной образ для создания более сложных финальных образов, таких как Nginx.
  3. Образ develop:

    • Наследуется от образа main.
    • Включает инструменты для сборки и разработки (например, ninja, make, cmake).
  4. Образы nodejs:

    • Включают версии Node.js (с 0.4 до последней).
    • Наследуются от образа main.
    • Содержат Node.js, npm, npmx, yarn и заголовочные файлы, установленные из tar-архивов.
  5. Образы jdk:

    • Включают версии JDK (с 6 по 21).
    • Имеют два тега:
      • Основной тег: наследуется от main.
      • Девелоперский тег: наследуется от develop.
Конечные образы

В директории linux/ecosystem находятся образы для конечных продуктов (например, apache2, nginx, jira). Эти образы обычно наследуются от соответствующих базовых образов.

Изменение подхода к разработке

Для улучшения управления образами и обеспечения актуальности предлагается следующий подход:

  1. Поддержка базовых образов:

    • Все существующие базовые образы (slim, main, develop, nodejs, jdk) сохранятся без изменений для каждой версии Debian.
    • Базовые образы будут пересобираться периодически, чтобы учесть обновления и бекпорты.
  2. Введение концепции upstream и deprecated:

    • Upstream: Актуальные конечные образы будут наследоваться от базовых образов для последней стабильной версии Debian. В данный момент это Debian 12. При выходе новой стабильной версии Debian, конечные образы будут переведены на новую версию.
    • Deprecated: Для устаревших версий базовых образов будут доступны только сами базовые образы. Конечные образы не будут обновляться для устаревших версий.
  3. Управление версиями:

    • Актуальные образы будут пересобираться на основе последней стабильной версии Debian.
    • В актуальные образы входят ветки current (стабильная, или же 12) как основная, а так же LTS но облегченная (11) - буду собираться только базовые образы.
    • Прошлая LTS ветка перестает поддерживаться, когда назначается новая.
    • При выпуске новой версии Debian (например, 13), все конечные образы будут обновлены и переведены на новую версию Debian, если она станет стабильной.
  4. Периодическое обновление образов:

    • Все версии базовых образов, включая устаревшие, будут периодически пересобираться для включения обновлений и бекпортов.
  5. Добавление новых базовых образов:

    • Начиная с текущей версии апстрима (12), в нее будут постепенно добавлены дополнительные базовые образы, такие как PHP и Python и др. Эти новые базовые образы не будут бекпортированы в предыдущие устаревшие версии. Однако при переходе апстрима на новую версию (например, 13), новые базовые образы также будут перенесены в нее и останутся в предыдущей версии (например, 12).

Заключение

Этот подход позволит лучше управлять версиями и поддерживать актуальность образов в репозитории. Переход на концепцию upstream и deprecated поможет сосредоточиться на поддержке актуальных версий продуктов и обеспечит более стабильное и предсказуемое окружение для конечных пользователей. Введение новых базовых образов дополнительно расширит функциональность и гибкость доступных Docker-образов.