Échec de démarrage du démon suite à un problème de venv / cryptography

Bonjour

Je suis sur Jeedom depuis quelque temps en version stable sur une machine virtuelle sur un DS218+. J’ai voulu changer mon vieillissant DS218+ et je viens d’acheter un TereeMaster F4-425 Pro avec 16Go de mémoire avec un premier pool système composé de 2 NVME et d’un pool de data avec 2 HDD. Bien entendu Docker est installer sur le pool NVME.

J’ai essayé d’installé Jeedom sur une machine virtuelle : tout fonctionnait sauf le plugin Zigbee dont le port USB de ma clé était ttyACM0 –> non reconu par la VM. Ce plugin m"‘étant indispensable j’ai installé Jeedom en Docker comme je le faisais au début.

Voici mon Docker Compose qui actuellement fonctionne :

services:
jeedom:
image: jeedom/jeedom:4.5-bookworm
container_name: jeedom08 # n° de Jeedom
restart: always # always ou « no »
mem_limit: 3072M # 3 Go de RAM physique max
memswap_limit: 3584M # 3,5 Go au total (soit 3 Go RAM + 512 Mo de Swap max autorisés)
network_mode: bridge
ports:

  • « 9080:80 » # Port = 0 si prod sinon n° de Jeedom - Interface Web Jeedom - n° de Jeedom ou 0 si prod
  • « 9090:9090 » # Port = 0 si prod sinon n° de Jeedom - Port WebSocket Jeedom
  • « 8080:8080 » # Port = 0 si prod sinon n° de Jeedom - Port Z2M / JeeZigbee
    cap_add:
  • NET_ADMIN # Nécessaire pour la gestion réseau (interfaces TUN/TAP, routage)
  • SYS_PTRACE # Autorise le suivi des processus
  • SYS_ADMIN # Nécessaire pour les opérations système d’administration
    volumes:
  • jeedom08_db:/var/lib/mysql # n° de Jeedom
  • /Volume1/Docker/Jeedom08/html:/var/www/html # n° de Jeedom
    tmpfs:
  • /tmp/jeedom:size=256M,mode=1777
    healthcheck:
    test: [« CMD », « curl », « -fs », « -S », « –max-time », « 2 », « http://localhost:80 »]
    interval: 30s
    timeout: 10s
    retries: 5
    environment:
  • TZ=Europe/Paris
  • PYTHONPATH=/usr/local/lib/python3.11/dist-packages:/var/www/html/plugins/rfxcom/resources/python_venv/lib/python3.11/site-packages:/var/www/html/plugins/broadlink/resources/python_venv/lib/python3.11/site-packages
devices:
  - "/dev/net/tun"
  - "/dev/ttyACM0-zwave:/dev/ttyACM0"	# zwave
  - "/dev/ttyUSB0-zigbee:/dev/ttyUSB0"	# zigbee
  - "/dev/ttyUSB1-enocean:/dev/ttyUSB1"	# enocean
  - "/dev/ttyUSB2-rfxcom:/dev/ttyUSB2"	# rfxcom

volumes:
jeedom08_db: # n° de Jeedom

Probleme :

Mon problème est qu’il est Impossible de démarrer le démon du plugin Broadlink. Les logs indiquaient une erreur de lancement à répétition.

Cause :

L’environnement virtuel Python (python_venv) propre au plugin Broadlink était corrompu ou incomplet, empêchant le chargement de la bibliothèque cryptography nécessaire au fonctionnement du démon.

Solution appliquée :

Nettoyage et réinstallation propre de l’environnement virtuel du plugin directement en ligne de commande dans le conteneur Jeedom :

# 1. Suppression du venv corrompu

sudo rm -rf /var/www/html/plugins/broadlink/resources/python_venv

# 2. Récréation du venv et installation des dépendances

sudo /usr/bin/python3 -m venv /var/www/html/plugins/broadlink/resources/python_venv

sudo /var/www/html/plugins/broadlink/resources/python_venv/bin/python3 -m pip install --upgrade pip wheel

sudo /var/www/html/plugins/broadlink/resources/python_venv/bin/python3 -m pip install requests cryptography==42.0.8

Après avoir relancé le démon depuis l’interface Jeedom (sans relancer l’installation automatique des dépendances du plugin), le démon est passé au vert et fonctionne parfaitement.

Je me suis aidé de GEMINI : car je n’ai pas les compétences pour résoudre ce probleme.

Comment peut on à l’avenir ne plus avoir ce souci ?

Vous remerciant par avance

Lemars

Bonjour,

  • pas de pseudo tag entre crochets dans le sujet
  • log et toutes autres données techniques dans un bloc Texte préformaté

Ce problème n’arrive pas sur une installation propre.
Vous avez dû faire une opération particulière pour que ca soit le cas, genre uograde debian en gardant les mêmes fichiers sans passer par une restauration.
Comme par hasard même problème sur les autres plugins: Faux positif "Timeout waiting status" et dépendances Python sur Debian 12 / Docker

La prochaine fois cherchez sur le forum avant de demander à une IA, ca consomme moins de ressources inutiles.

je ne pense pas avoir upgrader debian 11 a 12 en gardant les meme fichiers :
EDIT mais à un moment j’ai testé jeedom:latest : qui a priori est en debian 11 ? Peut etre est la source du probleme comme vous avez évoqué ?

Comment puis je repartir sur du propre ?
J’ai créé un nouveau Docker avec l’image jeedom:4.5-bookworm, importer ma sauvegarde Jeedom et lancer Jeedom : mais le probleme revient a chaque nouveau Docker
C’est ma sauvegarde qui est comme abimée ? Comment puis je réparer

merci à vous

La sauvegarde est faite avec quelle version de jeedom?
Cela fait plusieurs versions, je ne sais plus dire mais ca date de la 4.4 ou avant, que le dossier python_venv n’est plus inclus dans la sauvegarde donc normalement en faisant une sauvegarder et en restaurant celle-ci les dossiers/fichiers en questions n’existent pas.
Mais si la sauvegarde est faite avec une version trop ancienne alors il se peut que les fichiers soient recopiés

C’est parfaitement ok et sur de juste supprimer ce dossier et relancer les dépendances via l’interface (pas manuellement); donc juste faire

sudo rm -rf /var/www/html/plugins/broadlink/resources/python_venv

les autres lignes sont à éviter car trop spécifiques, ca dépend du plugin et de la version de celui-ci, alors que le script d’install s’en charge

merci bien,

Du coup le scénario de réparation serait de

lancer dans le terminal du Docker :

sudo rm -rf /var/www/html/plugins/broadlink/resources/python_venv
sudo rm -rf /var/www/html/plugins/rfxcom/resources/python_venv

relancer les dépendances des 2 plugins : attendre qua ca passe au vert
sauvegarder jeedom
recréer un docker simple avec un compose sans PYTHONPATH
restaurer la sauvegarde et normalement tout est ok ?

et surtout apres chaque installation des dépendances redonner les droits :

sudo chown -R www-data:www-data /var/www/html/plugins//resources/python_venv
sudo chmod -R 775 /var/www/html/plugins/
/resources/python_venv

et tout es ok merci

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.