Ваша программа требует особую версию какой-нибудь библиотеки и мешается другим программам в системе? Опасаетесь, что необходимые библиотеки потеряются в истории? Надо разворачивать одно и то же окружение на много опенкомпов?*
Представляю вашему вниманию программу, позволяющая собрать программу и все её библиотеки в один файл!
wget -fq https://raw.githubusercontent.com/ProgramCrafter/lua-utils/main/half-docker/enum-files.lua
Программа, сохраняющая "образ" файловой системы компьютера, на котором запущена.
Чтобы не сохранять образ всей OpenOS, сохраняется только разность между корневой папкой и дискетой с чистой OpenOS. Путь к этой дискете необходимо прописать на строке 6.
Образ сохраняется по пути /home/archive.bin.
wget -fq https://raw.githubusercontent.com/ProgramCrafter/lua-utils/main/half-docker/unpack-files.lua
Программа, распаковывающая образ поверх файловой системы. Осторожно, не открывайте зловредные архивы, потому что они могут затереть даже EEPROM (указав путь для распаковки /dev/eeprom)!
wget -fq https://raw.githubusercontent.com/ProgramCrafter/lua-utils/main/half-docker/container.lua
Сам полу-докер - скрипт, позволяющий запустить программу с подменой её файловой системы на образ. Так как OpenOS не записывается в образ, этой программе тоже необходимо указать путь к дискете с чистой OpenOS.
Подменяется только io.open - to be fixed soon, потому что из-за этого могут грузиться неправильные версии библиотек.
Образ является read-only - неясно, каким образом фиксить это.
*Kubernetes (для управления множеством контейнеров) в комплект поставки не входит.