Bonjour,
Récemment on a remarqué la disparition de l’image jeedom:lastest ( qui ne marchait pas ) et de plus, le tag par défaut jeedom:latest n’existe pas non plus… Il y a déjà plusieurs posts sur ce forum pour monter un jeedom sur docker mais ça ne marchait pas chez moi, l’erreur la plus courante étant un problème d’architecture
et pour cause: une image docker est par définition liée à l’architecture (le matériel) sur lequel elle est compilée!
J’ai donc du rechercher une image compatible sur mon RPI3b+ qui est du ARM32v7 pour refaire mon jeedom, et j’ai utilisé l’excellente image php, qui se décline à l’infini ou presque selon nos besoins:
- architecture (elles y sont toutes)
- version de php évidemment (là aussi, elles y sont toutes)
- avec serveur apache ou sans (le mode CLI, mais aussi FPM)
- et même la version linux support (alpine, debian stretch ou buster…)
Bref, le choix du roi! Voici pour info le lien docker hub et la liste des tags disponibles
Je choisi la version php:7.3-apache-buster (mais le même dockerfile est possible avec FROM php:7.3-apache-stretch pour une image proche des boxs officielles), j’ajoute les packages debian et les extensions php nécessaires à jeedom, et puis c’est tout ![]()
… enfin, pas tout à fait : comme on veut aussi installer jeedom - tant qu’à faire - j’ajoute un 1er step pour télécharger la source depuis Github, en choisissant la version (v3 ou v4). Cela en fait un dockerfile multi-stage, le résultat du 1er step est transmis au 2eme. Voici le fichier dockerfile :
# download jeedom source from github
FROM alpine AS jeedom-src
# version jeedom: master ou release=v3, V4-stable
RUN apk update && apk add --no-cache git && \
git clone https://github.com/jeedom/core.git -b master /app
# php7.3 + apache + debian 10 buster jeedom
FROM php:7.3-apache-buster
LABEL version="jeedom v4-buster"
# Installation des paquets
# ccze : couleur pour les logs
# wget : téléchargement
# libzip-dev zip: pour l'extension php zip
# sudo : pour les droits sudo de jeedom
# python* : pour certains plugins
RUN apt-get update && apt-get install -y \
apt-utils \
wget \
ntp \
locales \
ccze \
cron \
python python-pip python3 python-dev python3-pip python-virtualenv \
libzip-dev zip \
systemd gettext duplicity librsync-dev \
sudo && \
# add php extension
docker-php-ext-install pdo pdo_mysql zip && \
# add the jeedom cron task
echo "* * * * * /usr/bin/php /var/www/html/core/php/jeeCron.php >> /dev/null" > /etc/cron.d/jeedom && \
# add sudo for www-data
echo "www-data ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/90-mysudoers && \
# Reduce image size
apt-get clean && rm -rf /var/lib/apt/lists/*
COPY --chown=www-data:www-data --from=jeedom-src /app/ /var/www/html/
Et ensuite ? il vous faut à minima une base de données, que j’ai nommée mariadb dans la commande suivante, je n’ai pas trouvé de version « universelle » donc pour mon RPI j’utilise celle de yobasystem car l’image officielle n’est pas compatible
Builder et démarrer les 2 conteneurs:
docker build -t jeedom .
docker run --name mariadb -d yobasystems/alpine-mariadb
docker run --name jeedom --link mariadb:db -d jeedom
Ensuite ? Jeedom a la bonne idée de s’auto-configurer donc vous pouvez directement aller sur la page d’accueil : ici le « hostname » = db (c’est l’alias que j’ai utilisé dans la commande run)
Si la database est up, Jeedom va alors l’initialiser, et aussi installer quelques éléments supplémentaires… Ce qui prend encore un certains temps…
On a fini
J’ajoute un fichier docker-compose.yml pour automatiser un peu plus les 2 containers.
version: '2'
services:
jeedom:
container_name: jeedom
build : ./
privileged: false
pid: "host"
cap_add:
- SYS_PTRACE
tty: true
hostname: jeedom
restart: unless-stopped
ports:
- "80:80"
db:
container_name: db
image: mariadb
restart: unless-stopped
env_file:
- ./.env
adminer:
container_name: adminer
image: adminer
ports:
- "8080:8080"
Attention , on a ici un jeedom dans la boîte, donc peut être incompatible avec certains plugins, je vous incite donc à relire les tutos concernant la création du network docker macvlan
- Docker jeedom / mariadb reseau macvlan
- Proposal for Docker support avec les « best-practices »
- Ce tuto pour synology



)