Forum Linux.général systemd et containers : problème de dépendances

Posté par (site web personnel) . Licence CC By‐SA.
2
29
juin
2026

J'ai installé miniflux (merci à son auteur) sous la forme de containers rootless intégrés à systemd pour apprendre à m'en servir : ça pourrait parfaitement fonctionner avec le docker-compose.yml fourni par l'auteur du logiciel

Après quelques tâtonnements et lectures de la documentation disponible, j'ai obtenu un service fonctionnel. Mais je rencontre un souci étrange : les dépendances ne semblent pas correctement gérées par systemd.

Voici les fichiers posés dans ~/.config/containers/systemd :


miniflux-db.volume

[Unit]
Description=Miniflux database volume
[Volume]

rss.network

[Unit]
Description=Miniflux network
[Network]
NetworkName=rss

miniflux-postgres.container

[Unit]
Description=miniflux postgres database
After=rss.network miniflux-db.volume
[Container]
ContainerName= miniflux-postgres
Image=docker.io/library/postgres:18-alpine
Environment=POSTGRES_USER=some_user POSTGRES_PASSWORD=some_passwd POSTGRES_DB=miniflux
#HealthCmd=["pg_isready","-U","miniflux"]
#HealthInterval=10s
#HealthStartPeriod=30s
Volume=miniflux-db:/var/lib/postgresql
Network=rss.network
[Service]
Restart=always
[Service]
Restart=always
TimeoutStartSec=300
[Install]
WantedBy=default.target

miniflux.container

[Unit]
Description=Miniflux app server
After=miniflux-postgres.container
Requires=miniflux-postgres.container
[Container]
ContainerName=miniflux
Image=quay.io/miniflux/miniflux:latest
Network=rss.network
Environment=DATABASE_URL=postgres://some_user:some_passwd@systemd-miniflux-db:5432/miniflux?sslmode=disable RUN_MIGRATIONS=1 CREATE_ADMIN=0 BASE_URL=https://some.url
PublishPort=8080:8080
[Service]
Restart=always
RestartSec=5s
[Install]
WantedBy=default.target

systemctl --user daemon-reload après ça et tout est prêt.

Le problème

  • systemctl --user start miniflux échoue lamentablement. miniflux-postgres n'est jamais lancé.
  • systemctl --user start miniflux miniflux-postgres fonctionne au contraire parfaitement.

systemctl --user list-dependencies miniflux.service donne ceci, ce qui me semble absurde aussi :

miniflux.service
くろまる ├─app.slice
くろまる ├─podman-user-wait-network-online.service
くろまる ├─rss-network.service
くろまる └─basic.target
くろまる ├─paths.target
くろまる ├─sockets.target
くろまる │ ├─dbus.socket
くろまる │ ├─dirmngr.socket
くろまる │ ├─gcr-ssh-agent.socket
くろまる │ ├─gnome-keyring-daemon.socket
くろまる │ ├─gpg-agent-browser.socket
くろまる │ ├─gpg-agent-extra.socket
くろまる │ ├─gpg-agent-ssh.socket
くろまる │ ├─gpg-agent.socket
くろまる │ ├─keyboxd.socket
しろまる │ ├─pk-debconf-helper.socket
しろまる │ ├─pulseaudio.socket
くろまる │ └─ssh-agent.socket
くろまる └─timers.target

J'ai donc loupé quelque chose, c'est évident. Mais quoi ? Je prends toutes les suggestions !

  • # En une phrase

    Posté par . Évalué à 4 (+2/-0).

    miniflux.container n'a pas de Requires pour miniflux-postgres, donc forcément ça marche moins bien :)

    • [^] # Re: En une phrase

      Posté par (site web personnel) . Évalué à 1 (+0/-0).

      Erreur de copier-coller.

      J'ai bien :

      After=miniflux-postgres.container
      Requires=miniflux-postgres.container
      

      dans mon fichier.

      • [^] # Re: En une phrase

        Posté par (Mastodon) . Évalué à 6 (+3/-0).

        Apparemment il faut tout de même déclarer la dépendance à un service.

        After=miniflux-postgres.service
        Requires=miniflux-postgres.service
        

        Tu peux vérifier qu'ils sont bien présents dans ~/.config/containers/systemd/

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.