Am "Host Network" komm ich leider nicht drum rum, da ich anderes nicht meine Sonos System ins Fhem eingebunden bekomme.
Den Sonos Daemon sollte man dafür in einen eigenen Container auslagern. Der Travis Build, resp. ein fertiges Image, dafür steht noch aus.
Das Dockerfile sieht bei mir so aus:
FROM debian:stretch
ENV DEBIAN_FRONTEND noninteractive
ENV TERM xterm
# Install base environment
RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends apt-utils
RUN apt-get -y install \
apt-transport-https \
build-essential \
curl \
cpanminus \
dfu-programmer \
etherwake \
git \
netcat \
perl \
snmp \
snmpd \
sqlite3 \
sudo \
telnet \
usbutils \
vim \
wget && \
apt-get -y install \
libwww-perl \
libsoap-lite-perl \
libxml-parser-lite-perl
EXPOSE 4711
WORKDIR "/opt/fhem/FHEM"
CMD perl 00_SONOS.pm 4711 3 1
docker-compose.yml:
fhem-sonos:
restart: always
build: fhem-sonos
volumes:
- ./fhem/:/opt/fhem/:ro
network_mode: host
fhem-sonos-smb:
restart: always
image: dperson/samba
ports:
- "445:445"
environment:
TZ: "Europe/Berlin"
volumes:
- ./fhem-sonos/SonosSpeak/:/mnt/SonosSpeak/
networks:
- net
command: -p -s "SonosSpeak;/mnt/SonosSpeak"
Ich nutze die ganz aktuelle Version und habe folgende Ausgabe im FHEM-Log:
Danke, da fehlte beim Übertrag aus der Shell noch etwas.
Ich ahne es schon. Die neue 99_DockerImageInfo.pm wird wahrscheinlich gar nicht automatisch eingespielt.
Nope, wird aktualisiert.
Und es wird scheinbar jedesmal versucht, Telnet hinzuzufügen:
Messages collected while initializing FHEM:
configfile: telnetPort already defined, delete it first
Absolut, ja. Wird für den Health Check benötigt und daher hinzugefügt, wenn nicht vorhanden bzw. nicht auf 7072 hörend vorhanden.
Wenn du einen anderen Port verwendest, kannst du die Umgebungsvariable TELNETPORT entsprechend anders im Container setzen.