Passage des devices USB avec Podman

Bonjour,

J’ai un soucis avec mon installation, je suis obligé à chaque redémarrage de faire un chmod 777 sur mes périphériques USB pour qu’ils soient lisible depuis le conteneur.

J’ai tenter de créer une règle udev, mais cela n’a pas fonctionné :

/etc/udev/rules.d/10-local.rules

SUBSYSTEM=="usb", ATTR{idVendor}=="0658", ATTR{idProduct}=="0200", MODE="0666"

docker-compose.yml

services:
  jeedom4.4:
    image: jeedom/jeedom:latest
    privileged: true
    volumes:
      - http:/var/www/html
      - db:/var/lib/mysql
      - /dev/serial/by-id/usb-0658_0200-if00:/dev/ttyACM0
      - /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A702OP0R-if00-port0:/dev/ttyUSB3
      - /dev/serial/by-id/usb-HUAWEI_MOBILE_HUAWEI_MOBILE-if00-port0:/dev/ttyGSM
      - /dev/serial/by-id/usb-RFXCOM_RFXtrx433_A18ROE8-if00-port0:/dev/ttyRFXCOM
    tmpfs:
      - /tmp/jeedom
    ports:
      - 8086:80
      - 1883:1883
    restart: always
    network_mode: bridge
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:80"]
      interval: 30s
      timeout: 10s
      retries: 5
    cap_add:
      - CAP_AUDIT_WRITE
volumes:
  db:
  http:

Est-ce que vous avez une idée ?

Merci

Bonjour,

Tu fais le chmod 777 dans l’host, ou bien dans le conteneur ?

Tu utilise une image latest donc certainement à chaque redémarrage tu récupère une nouvelle image, à jour. Tu dois probablement reinstaller les dépendances des plugins aussi dans ce cas ?

C’est peut être à cause du privileged ou bien du cap_add… sont-ils utile, a-tu essayé sans ?

Essaye ceci: il faut déclarer les devices dans le bloc devices au lieu de volumes

Hello,

Merci de ton retour.

Sur le host.

Non. Ceci étant dit, l’image latest ne semble pas bouger souvent.

Ok, je vais essayer.

Malheureusement c’est toujours pareil, dès que je redémarre ma machine, et que je relance le conteneur, les drois dans le conteneurs sont ceux là :

Après avoir fait un chmod 777 sur le host, là les droits sont bons :

Je ne l’avais pas précisé dans mon message précédent, mais j’utilise Podman.

ça devrait marcher avec les droits existants, rw-rw---- pour moi c’est suffisant, mais le problème c’est le user / group! nobody:nogroup ça ne matche rien, du coup tu es obligé de mettre open-bar pour voir tes fichiers.
il vaudrait mieux gérer le user / group, essaye d’ajouter dans le yaml:
user: "1000:1000"
ou bien si 1000 n’est pas le user id de ton host, un truc dynamique:
user: "${UID:-1000}:${GID:-1000}"

Hello,

Merci de ton retour. J’ai essayé tout un tas de solutions différentes pour passer les bons users/droits proprement jusqu’au conteneur, sans succès. Visiblement, avec Podman c’est assez compliqué.

Je m’en suis sorti, en corrigeant mon fichier /etc/udev/rules.d/10-local.rules :

KERNEL=="ttyUSB[0-9]*", MODE="0666"
KERNEL=="ttyACM[0-9]*", MODE="0666"

Ce n’est pas parfait, mais cela fonctionne.

Bonne journée