argh pas cool 
Pour évitez tous ces désagréments, je passe par docker compose et portainer.
Docker compose, me permet de mettre ce que je veux et figer les versions, et portainer me permet de gérer tout ça avec une interface graphique sympa (avec accès aux logs, stats cpu/ram/disk, etc.).
Tu crées une fois le rep pour portainer :
docker volume create portainer_data
Et le docker run que tu lances est :
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
ensuite tu peux te connecter sur http://monipdemachine:9000
J’ai créé une Stack nommée gladys-assistant ou j’ai mis dedans le docker compose :
version: "3"
services:
gladys:
image: gladysassistant/gladys:v4
container_name: gladys
restart: always
privileged: true
network_mode: host
cgroup: host
logging:
driver: "json-file"
options:
max-size: 10m
environment:
NODE_ENV: production
SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-production.db
SERVER_PORT: 80
TZ: Europe/Paris
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/gladysassistant:/var/lib/gladysassistant
- /dev:/dev
- /run/udev:/run/udev:ro
watchtower:
image: containrrr/watchtower
restart: always
container_name: watchtower
command: --cleanup --include-restarting
volumes:
- /var/run/docker.sock:/var/run/docker.sock
et à cela tu peux ajouter ton Matterbridge, ton z2m dédié, ton broker MQTT, ton zwavejs-ui, node-red, etc. si bien entendu tu veux le gérer à la place de Gladys.
matterbridge:
container_name: matterbridge
image: luligu/matterbridge:latest # Matterbridge image with the latest tag
network_mode: host # Ensures the Matter mdns works
restart: always # Ensures the container always restarts automatically
volumes:
- "${HOME}/Matterbridge:/root/Matterbridge" # Mounts the Matterbridge plugin directory
- "${HOME}/.matterbridge:/root/.matterbridge" # Mounts the Matterbridge storage directory
zigbee2mqtt:
image: koenkk/zigbee2mqtt:2.2.1
# image: koenkk/zigbee2mqtt:1.42.0
container_name: zigbee2mqtt
restart: unless-stopped
environment:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- NODE_ENV=production
- TZ=Europe/Berlin
volumes:
- ./data:/app/data:rw
- /run/udev:/run/udev:ro
ports:
- 12000:12000
network_mode: host
devices:
# Make sure this matched your adapter location
- /dev/serial/by-id/usb-Txxxxxxxyyyyyyyy:/dev/ttyACM0
# run a rootless container with Docker Compose by adding the following attributes
# group_add:
# - dialout
# user: 1000:1000
Ce sont des exemples que l’on doit mettre ajuster à sa config et notamment dans la création ces répertoires.
En tout cas c’est ce que je fais et ça fonctionne plutôt bien chez moi, je peux « jouer » avec les différentes versions, toujours en backupant avant !
Avec cette méthode je peux aussi me créer un gladys de test, par exemple :
version: '3'
services:
gladys:
# image: cicoub13/gladys:tuya-rain
image: gladysassistant/gladys:matter-integration
# image: sescandell/gladys-test:zjs-battery
# image: sescandell/gladys-test:pr-zwaveJsMeter
# image: gladysassistant/gladys:zigbee2mqtt-tuya-me201wz
# image: gladysassistant/gladys:dashboad-add-other-aggregate-functions
container_name: gladys-test
restart: always
privileged: true
network_mode: host
logging:
driver: "json-file"
options:
max-size: 10m
environment:
NODE_ENV: production
SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-production.db
SERVER_PORT: 8001
TZ: Europe/Paris
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./gladysassistant-test:/var/lib/gladysassistant
- /dev:/dev
- /run/udev:/run/udev:ro
mosquitto:
image: eclipse-mosquitto:2.0.20
container_name: gladys-test-mqtt
restart: unless-stopped
# command: mosquitto -c /mosquitto-no-auth.conf
environment:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- VERSION=2.0.20
- DOWNLOAD_SHA256=azszderzbenrac6
- GPG_KEYS=azszderzbenr
- LWS_VERSION=4.2.1
- LWS_SHA256=azszderzbenr
volumes:
- ./mqtt-test/config:/mosquitto/config:rw
- ./mqtt-test/data:/mosquitto/data:rw
- ./mqtt-test/log:/mosquitto/log:rw
ports:
- 1888:1888
network_mode: host
matterbridge:
image: luligu/matterbridge:latest
container_name: gladys-test-matterbridge
restart: always
network_mode: host
volumes:
- ./matterbridge-test/Matterbridge:/root/Matterbridge
- ./matterbridge-test/.matterbridge:/root/.matterbridge
Pour ton cas, je pense que ce serait bien de gérer z2m par là.
Il faut cependant que tu désactives la gestion de z2m par Gladys, ensuite tu fais ton portainer, tu démarres une stack (avec z2m avec 2.3.0 pour la version par ex) et tu lances. Tu retournes ensuite dans Gladys et tu ajoutes ton docker externe z2m :
En espérant que tu retrouves tous tes petits.