Docker Fhem 5.8 - Can't locate RTypes.pm

Begonnen von itcompi, 01 November 2017, 19:51:53

Vorheriges Thema - Nächstes Thema

itcompi

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?

betateilchen

vermutlich wird FHEM nicht aus dem Installationsverzeichnis gestartet, in dem die fhem.pl liegt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

itcompi

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

rudolfkoenig

Die fhem.cfg enthaelt keine Zeile mit "attr global modpath XX", wobei XX normalerweise . ist.

Wernieman

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?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

ThoTo

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.
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

itcompi

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 :)

itcompi

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.