2 points par GN⁺ 2025-03-25 | 1 commentaires | Partager sur WhatsApp
  • Quadlet est un outil qui permet d’exécuter des conteneurs Podman comme services systemd. C’est utile pour démarrer automatiquement des conteneurs en arrière-plan après le redémarrage d’un serveur.
  • Auparavant, on utilisait la commande podman generate systemd, mais il est désormais recommandé de migrer vers Quadlet.

Méthode existante

  • Il fallait créer le conteneur, générer un fichier de service systemd, puis déplacer ce fichier dans le répertoire approprié avant d’activer le service.
  • Ce processus était fastidieux, avec des commandes longues et répétitives, et l’inconvénient de devoir modifier les fichiers manuellement.

Problèmes

  • L’ancienne méthode était complexe et manquait de flexibilité.
  • Comparée à la praticité de Docker Compose, elle demandait beaucoup de travail manuel.

Quadlet

  • Avec Quadlet, il est possible de gérer les conteneurs en créant un fichier .container.
  • La section [Container] permet de configurer l’image, les ports, les volumes et les variables d’environnement.
  • La section [Service] permet de définir la politique de redémarrage du conteneur.
  • La section [Install] permet de configurer le démarrage automatique au boot.

Ce qui est mieux

  • Toute la configuration peut être gérée dans un seul fichier, avec accès à toutes les options de systemd.
  • Écrire un fichier de configuration est plus simple que rédiger un script.
  • Les dépendances peuvent être gérées facilement.

Dépendances

  • Si un conteneur applicatif dépend d’un conteneur de base de données, on peut définir les dépendances dans la section [Unit] avec les options Requires et After.

Trop de fichiers ?

  • Répartir la configuration dans plusieurs fichiers peut réduire la complexité.
  • Il est possible de regrouper et gérer ensemble les fichiers liés entre eux.

Mise à jour des images

  • L’option AutoUpdate=registry permet de mettre à jour les images et de redémarrer les conteneurs avec la commande podman auto-update.
  • L’utilisation du tag latest peut être risquée ; il est recommandé d’utiliser des tags de version précis.

À propos de podman-compose

  • podman-compose est un script qui convertit des fichiers Compose pour Podman et systemd, mais il ne constitue pas une bonne solution à long terme.
  • Quadlet est mieux aligné avec la conception sans démon de Podman.

Ressources supplémentaires

  • Pour mieux comprendre Quadlet, il est recommandé de lire la page de manuel podman-systemd.unit.
  • Quadlet peut gérer non seulement des conteneurs, mais aussi des pods, des réseaux et des volumes.
  • Si vous n’êtes pas familier avec l’écriture de fichiers d’unité systemd, consultez aussi les pages de manuel systemd.unit et systemd.service.
  • podlet est un outil qui peut aider à générer des fichiers Quadlet à partir de commandes Podman ou de fichiers Compose.

1 commentaires

 
GN⁺ 2025-03-25
Avis sur Hacker News
  • Quadlet est une alternative à Docker Compose, utile pour « exécuter des conteneurs interdépendants dans un environnement proche de la production ». En revanche, c’est moins utile dans un environnement de développement

    • Docker Compose permet de gérer facilement des dépendances comme des bases de données, Redis ou OpenSearch
    • Avec Quadlet, il faut placer les fichiers dans ~/.config/containers/systemd, ce qui complique l’isolation par projet
    • Beaucoup de développeurs utilisent encore Docker, et utiliser Podman oblige à ajouter des configurations manuellement
    • Il faut une alternative à Docker Compose pour le développement, mais Quadlet n’est pas adapté
  • Après avoir découvert Quadlet, quelqu’un a construit un homelab basé sur Atomic OS et Quadlet en mode rootless, et le recommande vivement

    • Il est possible d’utiliser l’activation par socket de systemd pour activer automatiquement Traefik
    • C’est la seule manière de préserver l’IP source dans une configuration rootless
  • Quadlet est l’un des meilleurs outils issus de Podman, et il est recommandé à toute personne intéressée par les usages basés sur des conteneurs

    • Il est pratique de pouvoir traiter les conteneurs comme des services système
    • Utiliser Quadlet comme alternative à Docker permet une configuration plus propre
    • Pour le développement local, ce n’est pas une alternative à Docker Compose, et l’équipe Podman ne semble pas très intéressée par ce cas d’usage
  • Beaucoup hésitent à passer de Docker à Podman à cause de la commodité de Docker Compose

    • Quadlet permet d’utiliser Podman comme alternative à Docker Compose
    • Docker ne leur manquera pas, et ils pourront profiter de la sécurité de l’exécution de conteneurs rootless
  • Il a été mentionné que Podman-Compose est « non maintenu », mais Podlet est dans un état comparable

    • Podlet ne prend pas en charge beaucoup de fonctionnalités de Docker Compose, et ne permet pas d’empiler plusieurs fichiers yaml
  • Il est gênant que l’upstream de Podman ne fournisse pas de dépôt pour Debian/Ubuntu

    • Cela a conduit à revenir à Docker Compose
  • Avec openSUSE MicroOS, quelqu’un s’est mis à exécuter des conteneurs Podman sous systemd/quadlet, et est satisfait de sa configuration actuelle

    • Podman Compose était peu pratique à utiliser, et Quadlet est un meilleur choix
  • L’intégration entre systemd et Podman est appréciée

    • Docker Compose reste très compétitif, et Quadlet peut compliquer les répertoires de projet
  • Il est intéressant de voir Quadlet arriver en première page de Hacker News

    • L’utilisation de YAML Kubernetes offre une bonne portabilité
  • Quadlet permet d’utiliser les conteneurs comme des services système ordinaires

    • L’UX des conteneurs rootless s’accorde mal avec ce concept
    • Il serait souhaitable de pouvoir exécuter Quadlet rootless à l’intérieur d’une session système