Un déploiement Jitsi Meet peut s'exécuter brièvement, puis afficher l'état « Redémarrage » d'un ou plusieurs services dans Docker Desktop ou dans l'interface de Docker docker compose ps. Docker applique généralement la politique de redémarrage configurée après l'arrêt d'un processus. La solution durable consiste à identifier le service concerné, à consulter ses derniers journaux et à corriger l'erreur de démarrage. Redémarrer l'ensemble de la pile de manière répétée ou supprimer ses volumes peut masquer des traces ou effacer des données persistantes.
1. Trouvez le service qui redémarre.
Exécutez Compose depuis le répertoire contenant le même fichier Compose que celui .envutilisé pour lancer cette installation. Si vous utilisez habituellement des fichiers Compose supplémentaires, des profils ou --env-filed'autres options, incluez-les également.
docker compose ps -a
Vérifiez chaque service séparément. Les services principaux sont web, prosody, jicofo, et jvb; des services optionnels tels que jibriou jigasipeuvent également apparaître. Notez le service exact dont l'état est Restartingou Exited. La défaillance d'un service n'implique pas nécessairement que tous les conteneurs présentent la même panne.
Consultez le journal de fin de ce service, en utilisant les horodatages :
docker compose logs --tail=150 --timestamps jicofo
Remplacez jicofopar le service concerné. Ajoutez -f-le pour surveiller une autre tentative de démarrage. Le guide Docker de Jitsi documente la création de journaux pour ses services. Si Docker ne peut pas renvoyer de journaux, vérifiez si le pilote de journalisation configuré pour ce conteneur prend en charge leur lecture.
2. Recherchez le premier message fatal
Défilez jusqu'à la première erreur claire de chaque cycle de démarrage. Les lignes suivantes peuvent simplement indiquer que le processus s'est arrêté et que Docker le redémarre. Les causes principales courantes sont les suivantes :
- Mots de passe requis manquants : Jitsi a supprimé les mots de passe par défaut des comptes de service internes. Les services qui en ont besoin ne démarreront pas tant que ces mots de passe n'auront pas été définis. Depuis le répertoire de déploiement standard, exécutez le
./gen-passwords.shscript fourni pour renseigner les valeurs requises .env. Protégez ce fichier et ne divulguez jamais son contenu dans une demande d'assistance.
- Configuration invalide ou illisible : vérifiez le chemin d’accès au fichier et la syntaxe indiqués dans l’erreur. Une configuration personnalisée de Prosody, Jicofo ou JVB peut empêcher le démarrage du service concerné.
- Répertoire monté manquant ou inaccessible en écriture : vérifiez le chemin hôte exact indiqué dans l’erreur et comparez-le avec le mappage de volume du service. Évitez de modifier les permissions sur l’ensemble de l’arborescence de configuration.
- Échec d'une image ou d'un point d'entrée : vérifiez si le répertoire de déploiement, le fichier Compose et les balises d'image appartiennent à des versions compatibles, en particulier si la boucle a commencé après une mise à jour.
- Pression sur la mémoire : vérifiez l’état du conteneur et la mémoire de l’hôte. Une interruption pour cause de mémoire insuffisante nécessite une solution différente de celle requise pour une configuration incorrecte.
Une politique de redémarrage Docker explique pourquoi un processus redémarre après s'être arrêté ; elle n'explique pas la cause de son arrêt. Considérez-la Restartingcomme un symptôme et le journal de service comme une preuve.
3. Validez l'environnement et les fichiers Compose
Assurez-vous de modifier le fichier que Compose charge effectivement. Une erreur fréquente consiste à modifier un fichier .envalors que Compose en lit un autre depuis un répertoire différent ou depuis un fichier explicitement fourni --env-file. Validez la configuration avant de recréer les conteneurs :
docker compose config --quiet
Si Compose signale une erreur, corrigez le fichier YAML, la substitution de variable, le fichier référencé manquant ou l'option mentionnée. L'exécution docker compose configsans cette commande --quietpermet d'inspecter le modèle résolu, mais peut afficher des mots de passe interpolés. Ne partagez pas la sortie non expurgée.
Pour une installation Jitsi standard, comparez-la .envavec celle env.examplede la même version et vérifiez que les mots de passe internes requis sont présents. Si vous utilisez un fichier Compose personnalisé, assurez-vous que les variables nécessaires sont transmises au service approprié. Utilisez le script de mot de passe fourni plutôt que des espaces réservés vides. Si vous modifiez un mot de passe, veillez à ce que la configuration du composant correspondant reste cohérente.
Le projet Jitsi distingue les fichiers de version stable du code de développement et des images instables. Lors du dépannage, évitez de combiner un ancien répertoire Compose, des balises d'image arbitraires et des fichiers provenant d'une version différente.
4. Vérifiez les points de montage et les permissions de configuration
Comparez les entrées de volume du service avec les chemins d'accès réels sur l'hôte. Une faute de frappe, une CONFIGvaleur inattendue ou un répertoire de travail Compose différent peuvent entraîner l'utilisation d'un autre répertoire de configuration lors du déploiement.
Les permissions dépendent de la version de Jitsi. Le manuel indique qu'à partir de la version 1000 stable-11146, les conteneurs s'exécutent en tant qu'utilisateur non privilégié avec un système de fichiers en lecture seule. Les répertoires de configuration sont des entrées ; les données accessibles en écriture sont séparées en répertoires `configuration` storageet tmp`data`, qui doivent être accessibles en écriture par l'UID/GID 1000. Les versions antérieures utilisent une autre structure. Suivez les instructions du manuel correspondant à la version que vous utilisez plutôt que de réutiliser une configuration de permissions d'une autre version.
Si le journal signale un répertoire manquant ou inaccessible en écriture, corrigez précisément ce chemin. N'appliquez pas de commandes générales à chmod -R 777l'ensemble du répertoire de configuration Jitsi ; cela pourrait compromettre la sécurité sans corriger le chemin monté.
5. Examinez l'état de sortie et les modifications récentes.
Docker peut signaler le code de sortie d'un conteneur, l'état de mémoire insuffisante, le nombre de redémarrages et les erreurs du démon. Commencez par obtenir l'ID du conteneur du service défaillant :
docker compose ps -q jicofo
Remplacez ensuite l'identifiant renvoyé :
docker inspect --format '{{.State.Status}} exit={{.State.ExitCode}} oom={{.State.OOMKilled}} restarts={{.RestartCount}} error={{.State.Error}}' CONTAINER_ID
Un nombre croissant de redémarrages confirme des tentatives répétées. Dans ce cas oom=true, vérifiez les limites de mémoire de l'hôte ou du conteneur et les journaux système. Un code de sortie différent de zéro ne suffit pas à établir un diagnostic ; comparez-le avec le journal du service.
Si la boucle a commencé après une mise à jour, notez les modifications apportées : fichiers de version, étiquettes d’image, mot de passe, montage de volume ou configuration personnalisée. Sauvegardez la configuration et les données persistantes avant de changer de version. Restaurez un ensemble compatible de fichiers et d’images Compose ou suivez les instructions de mise à niveau de Jitsi. Les problèmes de réseau et de pare-feu peuvent empêcher les participants de se connecter, mais n’expliquent généralement pas pourquoi un processus de service s’arrête de manière répétée ; faites la distinction entre un échec de démarrage et un problème de connectivité.
6. Recréez le service après avoir corrigé la cause.
Après avoir modifié une valeur d'environnement ou une définition Compose, recréez le service concerné pour appliquer la nouvelle configuration :
docker compose up -d --force-recreate jicofo
Remplacez le nom du service. Si une modification de configuration partagée affecte plusieurs composants, recréez les services concernés simultanément. Ensuite, vérifiez à nouveau l'état et les journaux. Un simple redémarrage ne prend pas en compte toutes les modifications apportées à Compose ou à l'environnement, tandis que la recréation de l'ensemble de la pile peut interrompre les réunions en cours.
Ne pas utiliser docker compose down -vcomme solution générique aux boucles de redémarrage. Cette -voption supprime les volumes gérés par Compose et peut effacer des données que vous souhaitiez conserver. Enregistrez les journaux et vérifiez les points de montage avant de supprimer des conteneurs ou des données.
Vérifiez la correction
Vérifiez l'état, attendez plusieurs intervalles de démarrage normaux, puis vérifiez à nouveau :
docker compose ps
docker compose logs --tail=100 --timestamps jicofo
Le service concerné doit rester opérationnel, son compteur de redémarrages doit cesser d'augmenter et son journal ne doit plus afficher le même message d'erreur. Vérifiez que la page web se charge correctement et testez une réunion avec deux clients. Si les services restent fonctionnels mais que les participants ne peuvent pas échanger d'audio ou de vidéo, examinez la configuration réseau, les règles du pare-feu et l'adresse JVB indiquée dans le manuel Jitsi.
Pour référence, utilisez le guide d'auto-hébergement Docker de Jitsi Meet , l' exemple de variable d'environnement du projet , la documentation sur la politique de redémarrage de Docker , sa référence sur les journaux Compose et la référence d'inspection des conteneurs .