argh nicht cool ![]()
Um all diese Unannehmlichkeiten zu vermeiden, verwende ich docker compose und portainer.
Docker compose ermöglicht es mir, alles einzurichten, was ich möchte, und die Versionen festzulegen, und portainer ermöglicht es mir, all das mit einer schönen grafischen Oberfläche zu verwalten (mit Zugriff auf die Logs, CPU/RAM/Disk-Statistiken usw.).
Du erstellst einmal das Verzeichnis für portainer:
docker volume create portainer_data
Und der docker run, den du startest, ist:
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
anschließend kannst du dich auf http://meineMaschinenIP:9000 verbinden
Ich habe einen Stack namens gladys-assistant erstellt, in dem ich das docker compose hinterlegt habe:
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 dazu kannst du deinen Matterbridge, deinen z2m hinzufügen, deinen MQTT-Broker, dein zwavejs-ui, node-red usw., wenn du sie natürlich anstelle von Gladys verwalten möchtest.
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
Das sind Beispiele, die man an seine Konfiguration anpassen muss, insbesondere bei der Erstellung dieser Verzeichnisse.
Jedenfalls ist das, was ich mache, und es funktioniert bei mir recht gut, ich kann mit den verschiedenen Versionen „spielen“, immer mit Backup davor!
Mit dieser Methode kann ich mir auch einen Gladys-Test erstellen, zum Beispiel:
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
Für deinen Fall denke ich, dass es gut wäre, z2m darüber zu verwalten.
Du musst jedoch die Verwaltung von z2m durch Gladys deaktivieren, dann erstellst du deinen portainer, startest einen Stack (mit z2m mit 2.3.0 für die Version z. B.) und startest ihn. Du kehrst dann zu Gladys zurück und fügst deinen externen Docker z2m hinzu:
Ich hoffe, du findest alle deine kleinen Dinge wieder.


