Installation Jeedom en Docker sur un NAS DS218+ : probleme avec Buster?

Bonjour,

Comme indiqué ici :

Je vais citer @Mips
Debian 10 buster n’est plus maintenu à partir du mois prochain
Et
Dans tous les cas dans quelques semaines/mois jeedom et ses plugins ne fonctionneront plus car dépendances plus dispo et nous ne pourront rien y faire.

Alors du coup je ne sais pas comment faire
Car lorsque j’essaye d’installer sur mon DS218+ une image Jeedom autre qu’avec Buster rien ne fonctionne
Les équipes Jeedom créent des images avec Buster pour que cela fonctionne

Désolé mais mes compétences sont complètement dépassées…

Si vous avez des infos pour m’éclairer ?
merci

il va falloir donner plus d’info pour que les personnes ayant des connaissances sur docker synology puisse aider (ce qui n’est pas mon cas)

je ne comprend pas ca: non jeedom ne créé pas des images docker buster pour que cela fonctionne sous un synology, à mon avis ces images ont été créés car à un moment c’était la norme, c’est tout.

Je parle des images pour créer le docker Jeedom :

sans cette version buster : Jeedom ne fonctionne pas : probleme de réseau et autres
peut être que @Loic ou @Didier3L peut mieux expliquer que moi (il tourne aussi sous Docker comme moi sur Syno)

Bonjour,
Expliquer quoi ?

Bonjour,
Je ne sais pas expliquer pourquoi sur mon syno DS218+ je suis obligé d’installer l’image Docker en version Buster : sinon cela ne fonctionne pas bien : probleme de réseau, les plugins pb dépendances, …
merci

Bonjour,
J’ai aussi un 218+ voila ce que j’ai mis qui marche parfaitement : :

services:
  db:
    image: mariadb:latest
    command: 
      - "--default-authentication-plugin=mysql_native_password"
      - "--skip-name-resolve"
      - "--key_buffer_size=16M"
      - "--thread_cache_size=16"
      - "--tmp_table_size=48M"
      - "--max_heap_table_size=48M"
      - "--query_cache_type=1"
      - "--query_cache_size=32M"
      - "--query_cache_limit=2M"
      - "--query_cache_min_res_unit=3K"
      - "--innodb_flush_method=O_DIRECT"
      - "--innodb_flush_log_at_trx_commit=2"
      - "--innodb_log_file_size=32M"
      - "--innodb_large_prefix=on"
      - "--connect_timeout=600"
      - "--wait_timeout=600"
      - "--interactive_timeout=600"
    volumes:
      - /volume2/docker/jeedom/db:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=TODO1
      - MYSQL_DATABASE=jeedom
      - MYSQL_USER=jeedom
      - MYSQL_PASSWORD=TODO2
    expose:
      - 3306
  http:
    image: jeedom/jeedom:4.4-http-bookworm
    volumes:
      - /volume2/docker/jeedom/http:/var/www/html
    tmpfs:
      - /tmp/jeedom
    ports:
      - 52080:80
    restart: always
    environment:
      - DB_HOST=db
      - DB_USERNAME=jeedom
      - DB_PASSWORD=TODO2
      - DB_NAME=jeedom
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:80"]
      interval: 30s
      timeout: 10s
      retries: 5
    depends_on:
      - db

Bien remplacer les TODO1 et TODO2

1 « J'aime »

Merci pour ces précieuses infos

Pourquoi séparer « En mode 2 services (experimental) »

Le fait de mettre à part la base de données cela fonctionne sous mon NAS ?
Je ne sais pas pourquoi.

En vous remerciant encore

Bonjour,

Certain utilise MariaDB pour d’autre application.
Donc, il existe une version d’installation par service : jeedom core et MariaDB
Jeedom core sera dans un conteneur docker
MariaDB sera dans un autre conteneur docker

Si tu veux une installation avec un conteneur qui contienne Jeedom core et MariaDB il faut utiliser
jeedom/jeedom:4.4-bookworm

Car c’est le principe de docker tout separer en petit service

Je comprends
Mais pourquoi sur le NAS DS218+ cela fonctionne en Debian 12 en container séparé ?
Et si dans un même container cela ne fonctionne qu’avec Debian 10 ?

C’est compliqué de mettre la db dans le container en debian 12 c’est un sujet que je suis de loin mais avec le nouveau système de service ça merde pas mal. C’est aussi la raison pour laquelle on arrive plus à faire d’image jeedom pour rpi

Ok merci bien

Puré je suis bloqué sur cette erreur :

SQLSTATE[HY000] [1130] Host '172.22.0.3' is not allowed to connect to this MariaDB server

Voici les logs
Jeedom 87.txt (204,6 Ko)

et mon Docker Compose adapté avec mes ports USB :

version: '3'
  # 7 endroits modifier le numero de jeedom
  # répertoires à creer avant : Jeedom8x	et	db	et	http
  # avec version 4.4

services:
  db:
    container_name: Jeedom87-DB								# n° Docker à modifier 1/7
    image: mariadb:latest
    command: 
      - "--default-authentication-plugin=mysql_native_password"
      - "--skip-name-resolve"
      - "--key_buffer_size=16M"
      - "--thread_cache_size=16"
      - "--tmp_table_size=48M"
      - "--max_heap_table_size=48M"
      - "--query_cache_type=1"
      - "--query_cache_size=32M"
      - "--query_cache_limit=2M"
      - "--query_cache_min_res_unit=3K"
      - "--innodb_flush_method=O_DIRECT"
      - "--innodb_flush_log_at_trx_commit=2"
      - "--innodb_log_file_size=32M"
      - "--innodb_large_prefix=on"
      - "--connect_timeout=600"
      - "--wait_timeout=600"
      - "--interactive_timeout=600"
    volumes:
      - /volume1/docker/Jeedom87/db:/var/lib/mysql			# n° Docker à modifier 2/7
    restart: always
    environment:
                            # MDP TO DO 1
      - MYSQL_ROOT_PASSWORD=mysqlmdproot
      - MYSQL_DATABASE=jeedom
      - MYSQL_USER=jeedom
                       # MDP TO DO 2
      - MYSQL_PASSWORD=mysqlmdp
    expose:
      - 3306
  http:
    container_name: Jeedom87								# n° Docker à modifier 3/7
    image: jeedom/jeedom:4.4-http-bookworm
    # privileged: false
    # cap_add:
    #   - SYS_PTRACE
    #   - SYS_ADMIN
    #   - NET_ADMIN
    volumes:
      - /volume1/docker/Jeedom87/http:/var/www/html			# n° Docker à modifier 4/7
    devices:
      - "/dev/net/tun"
      - "/dev/ttyACM0:/dev/ttyACM0" 	# clé Zwave Sigma Designs Z-Stick Gen5
      - "/dev/ttyUSB0:/dev/ttyUSB0" 	# clé RfxCom 433XL
      - "/dev/ttyUSB1:/dev/ttyUSB1" 	# clé Enocean USB310
      - "/dev/ttyUSB2:/dev/ttyUSB2" 	# clé Zigbbe Sonnoff-P
    tmpfs:
      - /tmp/jeedom
    ports:
      - 9087:80							#  n° Docker à modifier	5/7
      - 8087:8080						#  n° Docker à modifier	6/7
      - 9097:8090						#  n° Docker à modifier	7/7
    # restart: always					# si besoin en Docker de prod
    environment:
      - DB_HOST=db
      - DB_USERNAME=jeedom
                    # MDP TO DO 2
      - DB_PASSWORD=mysqlmdp
      - DB_NAME=jeedom
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:80"]
      interval: 30s
      timeout: 10s
      retries: 5
    depends_on:
      - db

Je sais pas trop quoi te dire je viens de retenter de zéro chez moi et ça marche.

Pourquoi ?

9087 pour Jeedom
8097 pour Z2M
9097 pour reverse proxy car j’ai la chance d’avoir une box sans IP fixe…

Je vais tester ta config Loic brute de pomme sans autre : et j’ai ce message d’erreur :

SQLSTATE[HY000] [2002] Connection refused

avec ceci : sans changer les mots de passe pour tester ; juste modifer les volume avec les dossiers :

services:
  db:
    image: mariadb:latest
    command: 
      - "--default-authentication-plugin=mysql_native_password"
      - "--skip-name-resolve"
      - "--key_buffer_size=16M"
      - "--thread_cache_size=16"
      - "--tmp_table_size=48M"
      - "--max_heap_table_size=48M"
      - "--query_cache_type=1"
      - "--query_cache_size=32M"
      - "--query_cache_limit=2M"
      - "--query_cache_min_res_unit=3K"
      - "--innodb_flush_method=O_DIRECT"
      - "--innodb_flush_log_at_trx_commit=2"
      - "--innodb_log_file_size=32M"
      - "--innodb_large_prefix=on"
      - "--connect_timeout=600"
      - "--wait_timeout=600"
      - "--interactive_timeout=600"
    volumes:
      - /volume1/docker/jeedom88/db:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=TODO1
      - MYSQL_DATABASE=jeedom
      - MYSQL_USER=jeedom
      - MYSQL_PASSWORD=TODO2
    expose:
      - 3306
  http:
    image: jeedom/jeedom:4.4-http-bookworm
    volumes:
      - /volume1/docker/jeedom88/http:/var/www/html
    tmpfs:
      - /tmp/jeedom
    ports:
      - 9088:80
    restart: always
    environment:
      - DB_HOST=db
      - DB_USERNAME=jeedom
      - DB_PASSWORD=TODO2
      - DB_NAME=jeedom
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:80"]
      interval: 30s
      timeout: 10s
      retries: 5
    depends_on:
      - db

J’ai toujours cette erreur :

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.23.0.3. Set the 'ServerName' directive

Jeedom 88.txt (203,2 Ko)

Tu peux ajouter

hostname: jeedom

Ton docker db est bien démarré ? Que dit la log ? Attention aussi dans synology il faut souvent donner les droits a everyone sur les dossier des volumes.

Je suis parti du code de Loic, j’ai ajouter hostname : Jeedom

services:
  db:
    image: mariadb:latest
    command: 
      - "--default-authentication-plugin=mysql_native_password"
      - "--skip-name-resolve"
      - "--key_buffer_size=16M"
      - "--thread_cache_size=16"
      - "--tmp_table_size=48M"
      - "--max_heap_table_size=48M"
      - "--query_cache_type=1"
      - "--query_cache_size=32M"
      - "--query_cache_limit=2M"
      - "--query_cache_min_res_unit=3K"
      - "--innodb_flush_method=O_DIRECT"
      - "--innodb_flush_log_at_trx_commit=2"
      - "--innodb_log_file_size=32M"
      - "--innodb_large_prefix=on"
      - "--connect_timeout=600"
      - "--wait_timeout=600"
      - "--interactive_timeout=600"
    volumes:
      - /volume1/docker/jeedom89/db:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=TODO1
      - MYSQL_DATABASE=jeedom
      - MYSQL_USER=jeedom
      - MYSQL_PASSWORD=TODO2
    expose:
      - 3306
  http:
    image: jeedom/jeedom:4.4-http-bookworm
    hostname: jeedom
    volumes:
      - /volume1/docker/jeedom89/http:/var/www/html
    tmpfs:
      - /tmp/jeedom
    ports:
      - 9089:80
    restart: always
    environment:
      - DB_HOST=db
      - DB_USERNAME=jeedom
      - DB_PASSWORD=TODO2
      - DB_NAME=jeedom
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:80"]
      interval: 30s
      timeout: 10s
      retries: 5
    depends_on:
      - db

Mais toujours une erreur :

[MySQL] Error code : 42S02 (1146). Table 'jeedom.config' doesn't exist : SELECT `key`,`value` FROM config WHERE `key` IN ('language') AND plugin=:plugin

et j’ai tapé dans l’invite de commande du container : vu ici : Crash Jeedom suite à une sauvegarde manuelle

sudo php /var/www/html/install/database.php

Et ensuite bingo ! Cela fonctionne !!!

Mais pas de bol : a la première connexion à Jeedom : j’indique admin / admin
mais cela ne fonctionne pas …

Alors j’ai essayé d’ajouter le user : admin avec mot de passe admin mais impossible
J’ai donc refait avec mon mot de passe à moi et cela fonctionne !

php /var/www/html/core/php/jeecli.php user add admin admin

Y a t il moyen d’intégrer ces commandes dans l’image de Jeedom ? Je ne sais pas si c’est possible