Образы Docker, не содержащие менеджер пакетов

Образы Docker, не содержащие менеджер пакетов

Обычно я думаю о контейнерах docker как о исполняемых процессах, которые несут с собой небольшие части "среды", так что на хосте docker ничего устанавливать не нужно. Например, java jar вместе с jre.

Чтобы установить jre, мы можем начать с базовой коробки ubuntu, а затем использовать aptitude для ее установки. Однако, хотя нам фактически требуется менеджер пакетов для настройки зависимостей (в данном случае jre) для нашего приложения, я не думаю, что он строго необходим для выполнения нашего приложения.

Это поднимает вопрос, который слишком низок, чтобы иметь практическое значение, но все же вызывает интеллектуальное любопытство: возможно ли установить зависимости в образе Docker, не включая при этом менеджер пакетов в созданный образ?

Если посмотреть, как это можно сделать для chroot, то это кажется сложным или невозможным. На первый взгляд, эта задача кажется разрешимой (например, если я создам приложение Java с помощью gradle или maven, мне не нужно включать двоичный файл gradle или maven в мою опубликованную программу), поэтому мне также интересно узнать, почему у нее нет простого решения. Кто-нибудь работает над проблемой установки зависимостей в образ docker (или chroot, если на то пошло)? Если нет, то почему?

(Решениездесьи решение 2 изздесьтребуют установки менеджера пакетов в chroot, что не решает мой вопрос о том, как вытащить менеджер пакетов из образа docker. Решение 1 из второго касается сборки из исходников (я думаю?), что тоже не совсем то, что я ищу).

Связанный контент