Jeedom avec Docker et réseau macvlan

Tags: #<Tag:0x00007f38552eab78> #<Tag:0x00007f38552eaa10>

Bonjour,

suite à la réapparition de l’image jeedom/jeedom:latest sur le docker hub, j’ai remis en service le tuto

Pour ceux qui veulent une image jeedom « personnalisée » suivre ce tuto

Cela fonctionne également pour ceux qui n’ont de NAS Synology :blush:

Bonjour @Didier3L j’ai suivi le ce tuto.


Je pense avoir bien suivi le tuto (très bien écrit pour ceux qui ne sont pas très à l’aise avec linux au passage); Don ctout se déroule sans accroc jusqu’au lancement via docker-compose up -d

Les commandes sudo docker exec -it jeedom-v4 /bin/bash ou tail -n +1 /root/init.log && tail -f /root/init.log | ccze -A ne donnent rien et je constate dans le terminal du docker (via l’application docker de DSM) que j’ai l’erreur suivante:

date	  			stream	content
2020-10-21 12:19:23	stdout	/root/init.sh: 7: /root/init.sh: Syntax error: Bad fd number
2020-10-21 12:19:23	stdout	/root/init.sh: 4: /root/init.sh:  : not found
2020-10-21 12:19:23	stdout	/root/init.sh: 2: /root/init.sh:  : not found
2020-10-21 12:19:12	stdout	/root/init.sh: 7: /root/init.sh: Syntax error: Bad fd number
2020-10-21 12:19:12	stdout	/root/init.sh: 4: /root/init.sh:  : not found
2020-10-21 12:19:12	stdout	/root/init.sh: 2: /root/init.sh:  : not found
2020-10-21 12:19:01	stdout	/root/init.sh: 7: /root/init.sh: Syntax error: Bad fd number
2020-10-21 12:19:01	stdout	/root/init.sh: 4: /root/init.sh:  : not found
2020-10-21 12:19:01	stdout	/root/init.sh: 2: /root/init.sh:  : not found
etc...

J’ai pourtant vérifié mes différents fichiers, je vous mets ici mon init.sh:

#!/bin/bash

MYSQL_ROOT_PASSWD=$MYSQL_ROOT_PASSWD

log_file='/root/init.log'
exec >> $log_file 2>&1

echo 'Start init'

if [ -f /var/www/html/core/config/common.config.php ]; then
	echo 'Jeedom is already install'
else
	echo 'Start jeedom installation'
	apt-get install -y apache2 apache2-utils libexpat1 ssl-cert
	service apache2 start
	rm -rf /tmp/install.sh
	wget https://raw.githubusercontent.com/jeedom/core/V4-stable/install/install.sh -O /tmp/install.sh
	chmod +x /tmp/install.sh
	/tmp/install.sh -m $MYSQL_ROOT_PASSWD
fi

echo 'Start atd'
service atd restart

if [ $(which mysqld | wc -l) -ne 0 ]; then
	echo 'Starting mysql'
	chown -R mysql:mysql /var/lib/mysql /var/run/mysqld
	service mysql restart
fi

if ! [ -f /.jeedom_backup_restore ]; then
	if [ ! -z "${RESTOREBACKUP}" ] && [ "${RESTOREBACKUP}" != 'NO' ]; then
		echo 'Need restore backup '${RESTOREBACKUP}
		wget ${RESTOREBACKUP} -O /tmp/backup.tar.gz
		php /var/www/html/install/restore.php backup=/tmp/backup.tar.gz
		rm /tmp/backup.tar.gz
		touch /.jeedom_backup_restore
		if [ ! -z "${UPDATEJEEDOM}" ] && [ "${UPDATEJEEDOM}" != 'NO' ]; then
			echo 'Need update jeedom'
			php /var/www/html/install/update.php
		fi
	fi
fi

echo 'All init complete'
chmod 777 /dev/tty*
chmod 777 -R /tmp
chmod 755 -R /var/www/html
chown -R www-data:www-data /var/www/html

echo 'Start sshd'
service ssh start

echo 'Start apache2'
service apache2 start

cron -f

Merci à vous pour toute l’aide que vous pourrez m’apporter !

Pour info je n’ai pas osé refaire un docker-compose build
car l’opération s’était très bien passée et que je ne suis pas sûr de ce que ça pourrait faire…

Si quelqu’un m’entend … @Didier3L ?? Je n’arrive pas à me résoudre à réinstaller en Host car je comprends que si je veux utiliser du Xiaomi ou du BLEA je n’y arriverai pas.
Le macvlan semble être la clef mais je n’arrive pas au bout.
Merci d’avance pour votre aide.

Pour info aussi je ne comprends pas non plus à comprendre quel port USB laisser dans le fichier docker-compose.yaml.
En effet je n’ai pas de résultats aussi clairs que vous :

root@Tonio-NAS:~# dmesg |grep tty
[    0.000000] Command line: root=/dev/md0 earlyprintk=apl console=ttyS2,115200n8 ihd_num=2 netif_num=1 HddHotplug=1 SataPortMap=21 syno_hw_version=DS218+ vender_format_version=2 syno_hdd_detect=18,179,176,175 syno_hdd_enable=21,20,19,9 syno_usb_vbus_gpio=11@0000:00:15.0@1,10@0000:00:15.0@2,13@0000:00:15.0@3 sn=17A0PCN816512 macs=0011328346f8
[    0.000000] Kernel command line: root=/dev/md0 earlyprintk=apl console=ttyS2,115200n8 ihd_num=2 netif_num=1 HddHotplug=1 SataPortMap=21 syno_hw_version=DS218+ vender_format_version=2 syno_hdd_detect=18,179,176,175 syno_hdd_enable=21,20,19,9 syno_usb_vbus_gpio=11@0000:00:15.0@1,10@0000:00:15.0@2,13@0000:00:15.0@3 sn=17A0PCN816512 macs=0011328346f8
[    5.149879] dw-apb-uart.1: ttyS0 at MMIO 0x9131c000 (irq = 44, base_baud = 115200) is a 16550A
[    5.187021] console [ttyS2] enabled
[    5.209332] dw-apb-uart.2: ttyS1 at MMIO 0x9131e000 (irq = 45, base_baud = 115200) is a 16550A
[    5.221098] console [ttyS2] disabled
[    5.221338] dw-apb-uart.3: ttyS2 at MMIO 0x91320000 (irq = 6, base_baud = 115200) is a 16550A
[    5.221355] console [ttyS2] enabled
[    5.226524] dw-apb-uart.4: ttyS3 at MMIO 0x91322000 (irq = 47, base_baud = 115200) is a 16550A
[   52.122991] synobios open /dev/ttyS1 success
[   68.019522] synobios open /dev/ttyS1 success
[   69.524276] cdc_acm 1-2:1.0: ttyACM0: USB ACM device
[ 1709.661329] cdc_acm 1-2:1.0: ttyACM0: USB ACM device
[ 1814.159800] cdc_acm 1-3:1.0: ttyACM0: USB ACM device

J’ai laissé ttyACM0 car c’est le seul qui ressemble à ceux qui sont proposés dans le fichier de base.
Pour info j’ai un DS218+ avec 3 ports USB dont l’un est connecté à une clef Zwave Aeotec Gen5 et un autre est connecté à un onduleur…
Si quelqu’un peut m’aider à comprendre comment avancer je lui (vous) en serai très reconnaissant !!
Merci

Il faut laisser ttyACM0

Merci bcp @Didier3L.
Aurais-tu une idée concernant mon erreur au lancement de l’init.sh ?

2020-10-21 12:19:01	stdout	/root/init.sh: 7: /root/init.sh: Syntax error: Bad fd number
2020-10-21 12:19:01	stdout	/root/init.sh: 4: /root/init.sh:  : not found
2020-10-21 12:19:01	stdout	/root/init.sh: 2: /root/init.sh:  : not found

devices:
- « /dev/ttyACM0 »

A propos en suivant ton tuto je me suis toujours demandé si dans le Dockerfile il fallait remplacer les password et mysql-password par nos mot de passes effectifs, et donc même question pour le fichier docker-compose.yaml (perso j’ai mis mes propres mots de passe dans les deux fichiers.

Dockerfile:

ENV SHELL_ROOT_PASSWORD password
ENV MYSQL_ROOT_PASSWD mysql-password

docker-compose.yaml

             - SHELL_ROOT_PASSWORD=password
             - MYSQL_ROOT_PASSWD=mysql-password

J’ai exactement ça :

        devices:
             - "/dev/ttyACM0"

En tout cas j’ai refait depuis mon premier post plein d’essai et je retombe invariablement sur les même messages d’erreurs : le docker redémarre en permanence en m’affichant les fameux :

2020-10-27 22:31:08	stdout	/root/init.sh: 7: /root/init.sh: Syntax error: Bad fd number
2020-10-27 22:31:08	stdout	/root/init.sh: 4: /root/init.sh:  : not found
2020-10-27 22:31:08	stdout	/root/init.sh: 2: /root/init.sh:  : not found

J’ajoute qu’entre chaques essais, je supprime le docker en utilisant le paquet Docker de synology et je supprime également les images Debian:10 et jeedom-v4_jeedom:latest afin de forcer à tout retélécharger (au cas où ça change quelque chose…)

Et le docker compose ?
Y a quoi dedans ?

Voici le contenu de mon docker-compose.yaml (j’ai juste enlevé les mdp):

version: '2'

networks:
    default:
        external:
             name: mymacvlan

services:
    jeedom:
        container_name: jeedom-v4
        build : ./
        privileged: false
        pid: "host"
        cap_add:
             - SYS_PTRACE
        tty: true
        hostname: jeedom
        mac_address: a0:ca:ab:cd:ef:02
        networks:
             default:
                ipv4_address: 192.168.0.243
        volumes:
             - "/volume1/docker/jeedom-v4/html:/var/www/html"
             - "/volume1/docker/jeedom-v4/db:/var/lib/mysql"
        devices:
             - "/dev/ttyACM0"
        restart: unless-stopped
        environment:
             - TZ=Europe/Paris
             - PUID=1026
             - PGID=100
             - SYSTEMD_IGNORE_CHROOT=yes
             - SHELL_ROOT_PASSWORD=MONMOTDEPASSE
             - MYSQL_ROOT_PASSWD=MONMOTDEPASSE
             - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Pour repartir de zéro il ne faut pas oublier de supprimer le contenu du répertoire
/volume1/docker/jeedom-v4/html

Sinon le fichier initial ne se lancera pas

Oui le dossier était bien vide. En attendant j’ai suivi cet autre tuto et ça a marché.
Donc pour l’instant j’essaie de tout refaire marcher comme avant.
Merci bcp.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.