LINUX.ORG.RU

История изменений

Исправление GPFault, (текущая версия) :

при таких ресурсах - можно использовать контейнеры, но имхо не через docker, а через более лёгкий runtime; собираются/готовятся они при этом через docker.

я пробовал 2 варианта:

https://github.com/RuriOSS/rurima/blob/main/doc/USAGE.md запускалка контейнеров rurima, работает даже в termux на андроиде, на полноценном линуксе тоже работает.

Срезает много углов, насколько я понимаю в частности исходит из того что о образ=контейнер, то есть или базовый слой readonly, или он будет засираться приложением. Варианта прозрачно добавить unionfs со временным слоем поверх, как это делает docker - нет

Вариант 2 гонял контейнеры с помощью вот этого - https://github.com/containers/crun

там в примере на сайте использование с podman, но я запускал без него.

По сути 3 файла: статический бинарник этого crun, squashfs c приложением, и shell-скрипт, который его с кучей параметров вызывает предварительно монтруя squashfs

Приложение собиралось докером, потом формат результата сборки тюнился чтоб его было удобно запускать подобной штукой. Конкретно в моём случае я пережимал в squashfs, потому что стандартные способы хранение контейнеров докером очень избыточны, в его последних трендах вообще дублирование - хранит одновременно в формате чтоб быстро запускалось и одновременно в формате чтоб быстро отдать на другой хост.

Этот вариант со sqaushfs делал давно, возможно с тех пор стало можно менее криво

Соответственно с точки зрения дистрибутива - этим 2м утилитам ничего не требуется, это статически собранные бинарники, можно запускать из дистрибутива состоящего из одного busybox, а можно наверное вообще как init запустить (но тогда наверное будут проблемы с resolv.conf если он нужен контейнеру)

Исходная версия GPFault, :

при таких ресурсах - можно использовать контейнеры, но имхо не через docker, а через более лёгкий runtime; собираются/готовятся они при этом через docker.

я пробовал 2 варианта:

https://github.com/RuriOSS/rurima/blob/main/doc/USAGE.md запускалка контейнеров rurima, работает даже в termux на андроиде, на полноценном линуксе тоже работает.

Срезает много углов, насколько я понимаю в частности исходит из того что о образ=контейнер, то есть или базовый слой readonly, или он будет засираться приложением. Варианта прозрачно добавить unionfs со временным слоем поверх, как это делает docker - нет

Вариант 2 гонял контейнеры с помощью вот этого - https://github.com/containers/crun

там в примере на сайте использование с podman, но я запускал без него.

По сути 3 файла: статический бинарник этого crun, squashfs c приложением, и shell-скрипт, который его с кучей параметров вызывает предварительно монтруя squashfs

Приложение собиралось докером, потом формат результата сборки тюнился чтоб его было удобно запускать подобной штукой. Конкретно в моём случае я пережимал в squashfs, потому что стандартные способы хранение контейнеров докером очень избыточны, в его последних трендах вообще дублирование - хранит одновременно в формате чтоб быстро запускалось и одновременно в формате чтоб быстро отдать на другой хост.

Этот вариант со sqaushfs делал давно, возможно с тех пор стало можно менее криво