Eigenen Debian-Container mit fhem erzeugen

1. Den Container als Daemon laufen lassen

docker run -d --network fhem-netzwerk --restart unless-stopped --name fhem2 --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-debian:bullseye

2. Konsole im Container ausführen

docker exec -it fhem2 /bin/bash

3. Container für fhem vorbereiten (natürlich im Konsolenfenster!)

apt-get update && apt-get -y dist-upgrade && apt-get -y install -f init procps wget vim bash-completion perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl fonts-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl libdate-manip-perl libhtml-treebuilder-xpath-perl libmojolicious-perl libxml-bare-perl libauthen-oath-perl libconvert-base32-perl libmodule-pluggable-perl libnet-bonjour-perl libcrypt-urandom-perl nodejs npm libnet-dbus-perl default-jre git curl mc autoconf libtool sudo protobuf-compiler zip unzip tar

mkdir -p ~/_download
cd ~/_download

wget http://fhem.de/fhem-6.1.deb

apt-get -y install -f ./fhem-6.1.deb

cp /opt/fhem/contrib/init-scripts/fhem.service /etc/systemd/system/
systemctl daemon-reload

4. signal-cli installieren

#cd ~/_download
#wget https://svn.fhem.de/fhem/trunk/fhem/contrib/signal/signal_install.sh
#chmod 755 signal_install.sh
#./signal_install.sh


cpan install Protocol::DBus
adduser --disabled-password --gecos none signal-cli

4.1 Kurze Unterbrechung:

Wenn ausgegeben wird: "Waiting for signal-cli to become ready.........."

Mit Strg + C unterbrechen

cd ~/_download
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17%2B35/OpenJDK17-jdk_arm_linux_hotspot_17_35.tar.gz
cd /opt
tar zxf ~/_download/OpenJDK17-jdk_arm_linux_hotspot_17_35.tar.gz
rm -rf /opt/java
mv jdk* java
cat >> /etc/environment << "EOFJAVA"
export JAVA_HOME="/opt/java"
EOFJAVA
source /etc/environment

cd ~/_download
wget https://downloads.gradle-dn.com/distributions/gradle-7.1-bin.zip
rm -rf /opt/gradle
mkdir -p /opt/gradle
unzip -d /opt/gradle ./gradle-7.1-bin.zip
cat >> /etc/environment << "EOFPROFILE"
export PATH="$PATH:/opt/gradle/gradle-7.1/bin"
EOFPROFILE
source /etc/environment

4.2 Rust installieren

cd ~/_download
curl https://sh.rustup.rs -sSf | sh
source ~/.cargo/env 

reboot

4.3 zkgroup libs übersetzen

cd ~/_download
git clone https://github.com/signalapp/zkgroup.git
cd zkgroup
git checkout v0.8.2
cd ffi/java
make # Fehler am Ende ignorieren!

mkdir -p /opt/signal/lib
chown -R signal-cli:dialout /opt/signal

cp ../../target/release/libzkgroup.so /opt/signal/lib

4.4 prutobuf installieren

cd ~/_download

git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
make
make check
make install
ldconfig

4.5 libsignal-client übersetzen

cd ~/_download
git clone https://github.com/signalapp/libsignal-client.git
cd libsignal-client
git checkout v0.9.7
cd java
./build_jni.sh desktop

cp ../target/release/libsignal_jni.so /opt/signal/lib
ldconfig

4.6 Libraries ersetzen

cd /opt/signal/lib
sudo -u signal-cli zip -u signal-client-java-*.jar libsignal_jni.so
sudo -u signal-cli zip -u zkgroup-java-*.jar libzkgroup.so

cd ~/_download
./signal_install.sh

systemctl start signal

Eigenen Debian-Container mit fhem erzeugen (zuletzt geändert am 2022-01-23 09:37:57 durch HansStefanSuhle)