Поскольку RoS (7.18.1) уже знает параметры, с которыми был запущен контейнер, было бы полезно добавить функцию Обновления (до :latest) вместе с командами Запуска и Остановки контейнера. При работе с несколькими контейнерами — поиск по имени репозитория и создание вручную вызываемого скрипта для каждого контейнера.
# update_pihole.rsc
/container/stop [find where repo="registry-1.docker.io/pihole/pihole:latest"]
:delay 5
/container/remove [find where repo="registry-1.docker.io/pihole/pihole:latest"]
:delay 1
/container/add remote-image="pihole/pihole:latest" interface=veth1 envlist=pihole_envs root-dir=usb1/pihole mounts=dnsmasq_pihole,etc_pihole domain-name="my.home.lan" logging=yes start-on-boot=yes
:delay 90
/container/start [find where repo="registry-1.docker.io/pihole/pihole:latest"]
Отрегулируйте задержки под свои контейнеры, у pihole из тех, что я тестировал, наибольшее время занимает распаковка и запуск. Так как RoS точно знает состояние контейнера, лучше всего реализовать функцию обновления для минимизации простоев при апгрейде адекватных контейнеров, использующих env-переменные или монтирования.
Список URL репозиториев всех контейнеров:
:foreach i in=[/container/print as-value] do={ :if ($i->"repo"!="") do={ :put ($i->"repo") } }
registry-1.docker.io/pihole/pihole:latest
registry-1.docker.io/netbirdio/netbird:latest