08 stycznia 2024 blog podman miniflux
Podman udostępnia serwis do automatycznego update'u kontenerów. Jeśli mamy kontenery skonfigurowane przy użyciu quadletów, wystarczy dodać do [Container]
wpis AutoUpdate=registry
, potem systemctl --user enable --now podman-auto-update.timer
i już ;)
Od jakiegoś czasu do subskrybowania kanałów Atom/RSS używam Miniflux. Miniflux wymaga 2 kontenerów, jednego dla bazy, a drugiego dla siebie. W przykładzie poniżej oba kontenery są w jednym podzie.
Niestety w wersji 4.8.3 nie ma jeszcze wsparcia dla plików .pod
(pull request). Dlatego poniższe pliki zawierają niezbyt eleganckie obejście tego problemu. Polecam też zamienić wszystkie x
na jakieś inne wartości.
~/.config/containers/systemd/miniflux-db.container
:
[Unit]
Description=miniflux-db container
[Container]
#Pod=systemd-miniflux
PodmanArgs="--pod=miniflux-pod"
Image=docker.io/postgres:15
AutoUpdate=registry
Volume=%h/.config/miniflux.podman/data:/var/lib/postgresql/data
Environment=POSTGRES_USER=x
Environment=POSTGRES_PASSWORD=x
[Service]
ExecStartPre=sh -c "mkdir -p $HOME/.config/miniflux.podman/data"
ExecStartPre=podman pod create -p 8083:8080 miniflux-pod
ExecStopPost=-podman pod rm miniflux-pod -f
~/.config/containers/systemd/miniflux-instance.container
:
[Unit]
Description=miniflux-instance container
Requires=miniflux-db.service
After=miniflux-db.service
[Container]
#Pod=systemd-miniflux
PodmanArgs="--pod=miniflux-pod"
Image=quay.io/miniflux/miniflux:2.0.51
AutoUpdate=registry
Environment="DATABASE_URL=postgres://miniflux:x@localhost/miniflux?sslmode=disable"
Environment="RUN_MIGRATIONS=1"
Environment="CREATE_ADMIN=1"
Environment="ADMIN_USERNAME=x"
Environment="ADMIN_PASSWORD=x"
Environment="BASE_URL=http://x"
[Install]
WantedBy=multi-user.target default.target
Pozostaje tylko uruchomienie minifluxa systemctl --user start miniflux-instance
i zalogowanie się. Aktywowany wcześniej podman-auto-update.timer
będzie dbał o uaktualnienie i, w przypadku nowej wersji, zrestartowanie kontenera.
Przed uruchomieniem lub w przypadku problemów można obejrzeć wygenerowane przez podmana unity systemd z naszych quadletów: /usr/lib/systemd/system-generators/podman-system-generator --user --dryrun
.