Hi,
ich versuche mich immer noch daran mein System auf Docker umzustellen. Dabei habe ich mir eine Dockerfile und eine Compose file angelegt.
FROM resin/rpi-raspbian:stretch
MAINTAINER itcompi
ENV FHEM_VERSION 5.8
ENV DEBIAN_FRONTEND noninteractive
ENV port 7072
# See https://debian.fhem.de/ and https://forum.fhem.de/index.php?topic=27679.0 for details
# Install dependencies
RUN apt-get update && apt-get upgrade -y --force-yes && apt-get install -y --force-yes --no-install-recommends apt-utils
RUN apt-get -y --force-yes install \
perl \
perl-base \
wget \
git \
apt-transport-https \
sudo etherwake \
dfu-programmer \
build-essential \
snmpd \
snmp \
vim \
telnet \
usbutils \
sqlite3
# Install perl packages
RUN apt-get -y --force-yes install \
libavahi-compat-libdnssd-dev \
libalgorithm-merge-perl \
libclass-dbi-mysql-perl \
libclass-isa-perl \
libcommon-sense-perl \
libdatetime-format-strptime-perl \
libdbi-perl \
libdevice-serialport-perl \
libdpkg-perl \
liberror-perl \
libfile-copy-recursive-perl \
libfile-fcntllock-perl \
libio-socket-ip-perl \
libio-socket-ssl-perl \
libjson-perl \
libjson-xs-perl \
libmail-sendmail-perl \
libsocket-perl \
libswitch-perl \
libsys-hostname-long-perl \
libterm-readkey-perl \
libterm-readline-perl-perl \
libwww-perl \
libxml-simple-perl \
libdbd-sqlite3-perl \
libtext-diff-perl \
libcgi-pm-perl
# Configure timezone
RUN echo Europe/Berlin > /etc/timezone && dpkg-reconfigure tzdata
WORKDIR "/opt"
# Install fhem
RUN wget http://fhem.de/fhem-5.8.tar.gz && tar -zxvf fhem-5.8.tar.gz && rm -r fhem-5.8.tar.gz && mv fhem-5.8 fhem
#RUN userdel fhem
WORKDIR "/opt/fhem"
RUN dir
COPY data/fhem*.cfg ./
COPY start.sh ./
EXPOSE 8083 7072
CMD bash /opt/fhem/start.sh
version: '2'
services:
fhem:
expose:
- "8083"
- "7072"
ports:
- "8083:8083"
- "7072:7072"
build: fhem
privileged: true
stdin_open: true
tty: true
# devices:
# - "/dev/ttyUSB0:/dev/ttyUSB0"
volumes:
- ./fhem/start.sh:/opt/fhem/start.sh
- ./fhem/log/:/opt/fhem/log
- ./fhem/backup/:/opt/fhem/backup
- ./fhem/data/fhem.cfg:/opt/fhem/fhem.cfg
- ./fhem/data/fhem_interfaces.cfg:/opt/fhem/fhem_interfaces.cfg
- ./fhem/data/fhem_utilities.cfg:/opt/fhem/fhem_utilities.cfg
- ./fhem/data/fhem_bvg.cfg:/opt/fhem/fhem_bvg.cfg
- ./fhem/data/fhem_wc.cfg:/opt/fhem/fhem_wc.cfg
- ./fhem/data/fhem_guest.cfg:/opt/fhem/fhem_guest.cfg
- ./fhem/data/fhem_rubbish.cfg:/opt/fhem/fhem_rubbish.cfg
- ./fhem/data/fhem_living.cfg:/opt/fhem/fhem_living.cfg
- ./fhem/data/fhem_dining.cfg:/opt/fhem/fhem_dining.cfg
- ./fhem/data/fhem_hall.cfg:/opt/fhem/fhem_hall.cfg
- ./fhem/data/fhem_bathroom.cfg:/opt/fhem/fhem_bathroom.cfg
- ./fhem/data/fhem_parents.cfg:/opt/fhem/fhem_parents.cfg
- ./fhem/data/fhem_child1.cfg:/opt/fhem/fhem_child1.cfg
- ./fhem/data/fhem_child2.cfg:/opt/fhem/fhem_child2.cfg
#- ./fhem/data/FHEM/controls.txt:/opt/fhem/FHEM/controls.txt
#- ./fhem/data/FHEM/99_myUtils.pm:/opt/fhem/FHEM/99_myUtils.pm
#- ./fhem/data/contrib/dblog/db.conf:/opt/fhem/contrib/dblog/db.conf
networks:
- hqx7vr-network
# depends_on:
# - "mysql"
networks:
hqx7vr-network:
driver: bridge
Nachdem ich docker-compose build & up gemacht habe kommt folgende Fehlermeldung und ich weiß nicht wie ich die weg bekomme. Der Container fährt sofort runter. Die Datei ist jedoch vorhanden...
Fehlermeldung:
Can't locate RTypes.pm in @INC (you may need to install the RTypes module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24
/usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at fhem.pl line 511.
Hat jemand eine Ahnung?
vermutlich wird FHEM nicht aus dem Installationsverzeichnis gestartet, in dem die fhem.pl liegt.
Nein. Ich führe die start.sh Datei aus. Diese hat nur folgenden Inhalt:
#!/bin/bash
echo "Start FHEM"
sudo perl fhem.pl fhem.cfg
Die fhem.cfg enthaelt keine Zeile mit "attr global modpath XX", wobei XX normalerweise . ist.
Wobei meine Empfehlung eigentlich wäre, die config in Docker externe zu legen ... oder wenigstens in ein Volumen. So das ein internes Save auch die Datei richtig sichert ...
Und wozu brauchst Du IM fhem-Docker ein vim?
Zitat von: Wernieman am 01 November 2017, 21:23:20
Wobei meine Empfehlung eigentlich wäre, die config in Docker externe zu legen ... oder wenigstens in ein Volumen. So das ein internes Save auch die Datei richtig sichert ...
Und wozu brauchst Du IM fhem-Docker ein vim?
Dem Compose-File des Threaderstellers entnehme ich dass er das eh macht. Die cfg-Files liegen am Docker-Host.
An dieser Stelle würde ich eher anraten auf ein fhem.cfg File zu reduzieren.
Zitat von: rudolfkoenig am 01 November 2017, 21:14:51
Die fhem.cfg enthaelt keine Zeile mit "attr global modpath XX", wobei XX normalerweise . ist.
Das war es. Danke dir! Ich habe nun das ganze mit der demo probiert. Mit dieser läuft es auch. Nun muss ich "nur" noch schauen wo in meiner config etwas schief läuft :)
Zitat von: ThoTo am 01 November 2017, 22:02:03
Dem Compose-File des Threaderstellers entnehme ich dass er das eh macht. Die cfg-Files liegen am Docker-Host.
An dieser Stelle würde ich eher anraten auf ein fhem.cfg File zu reduzieren.
Danke für den Tipp. Ich dachte anfangs es macht sinn die einzelnen Bereiche der Übersichtlichkeit halber zu trennen. Heute bin ich eines besseren belehrt und es macht nur Arbeit.
Die Volumes lege ich entsprechend an. Das sollte nicht das Problem sein.