Hier ein Update der config von oben:
- docker IPv6 Änderungen
- healthcheck für homegear main Prozess, damit der Container automatisch neu startet falls der Hauptprozess sich beendet (danke an Neuer_User)
- hinzufügen der port 80, 443 für spätere updates
Anbei ein Beispiel für die ein Docker Compose setup incl. IPv6:
(docker: 20.10.6, docker-compose: 1.29.0) ip6tables
erzeugt automatisch die benötigten Filter für IPv6.
/etc/docker/daemon.json
:
{
"debug": false,
"experimental": true,
"ipv6": true,
"ip6tables": true,
"bip": "192.168.1.1/24",
"fixed-cidr-v6": "fd00:0:0:1::/64",
"dns": ["192.168.178.1"]
}
homegear.yml
:
networks:
homegear:
driver: bridge
driver_opts:
com.docker.network.bridge.name: br-homegear
enable_ipv6: true
ipam:
config:
- subnet: 192.168.2.0/24
- subnet: fd00:0:0:2::/64
driver: default
name: homegear
services:
homegear:
container_name: homegear
depends_on:
mosquitto:
condition: service_started
devices:
# Anpassen je nach angeschlossenem Device
- /dev/ttyAMA0:/dev/ttyAMA0
- /dev/ttyACM0:/dev/ttyACM0
environment:
# $(id -u) und $(id -g) müssen von Hand eingetragen werden da docker-compose nicht automatisch auswertet
HOST_USER_GID: '1000'
HOST_USER_ID: '1000'
TZ: Europe/Berlin
healthcheck:
test: ps -q `cat /var/run/homegear/homegear.pid` || bash -c 'kill -s 15 -1'
interval: 10s
timeout: 5s
retries: 1
hostname: homegear
# image: homegear/homegear:latest
image: homegear/homegear:testing
labels:
docker.group: homegear
networks:
homegear: null
ports:
- protocol: tcp
published: 80
target: 80
- protocol: tcp
published: 443
target: 443
- protocol: tcp
published: 2001
target: 2001
- protocol: tcp
published: 2002
target: 2002
- protocol: tcp
published: 2003
target: 2003
restart: unless-stopped
stop_grace_period: 60s
volumes:
- /docker/homegear/etc:/etc/homegear:Z
- /docker/homegear/lib:/var/lib/homegear:Z
- /docker/homegear/log:/var/log/homegear:Z
- /sys:/sys:rw
mosquitto:
container_name: mosquitto
environment:
TZ: Europe/Berlin
hostname: mosquitto
image: eclipse-mosquitto:latest
labels:
docker.group: homegear
networks:
homegear: null
ports:
- protocol: tcp
published: 1883
target: 1883
- protocol: tcp
published: 8883
target: 8883
restart: unless-stopped
volumes:
- /docker/mosquitto/config:/mosquitto/config:rw
- /docker/mosquitto/data:/mosquitto/data:rw
- /docker/mosquitto/log:/mosquitto/log:rw
version: '3'
- Starten:
docker-compose -f homegear.yml up -d
- Stoppen:
docker-compose -f homegear.yml down
- Logs:
docker-compose -f homegear.yml logs -f
/boot/cmdline.txt
sollte das folgende beinhalten:
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
Für IPv6 autoconfiguration sollte /usr/lib/dhcpcd/dhcpcd-hooks/99-sysctl
erstellt werden und folgendes beinhalten (eth0
an das benutzte Interface anpassen):
sysctl net.ipv6.conf.eth0.accept_ra=2
Dies ist notwendig damit das Interface nicht nur nach einem Reboot, sondern auch später noch router advertisements empfangen kann.