Skip to content
Pifou25 edited this page Jun 29, 2023 · 35 revisions

Git et Build image from Scratch ?

Lancer le build de l'image + run

git clone https://github.com/pifou25/docker-jeedom.git

se placer dans le répertoire créé, copier le fichier .env.default en .env, modifier les mot de passe... puis lancer le build + run docker en mode detach:

docker compose up -d

Ceci build et démarre plusieurs containers qui ont pour nom: jeedom, db, scheduler, et adminer (ou bien phpmyadmin)

Lorsque l'installation est terminée, se connecter à Jeedom (admin / admin, modifier le mot de passe à la 1ère connexion, puis ensuite, se connecter également au market Jeedom, pour enfin accéder au Dashboard).

Play-With-Docker

un mode 'try-it-online' avec le site https://labs.play-with-docker.com/ : ajouter une instance, et lancer les 2 commandes suivantes:

wget https://raw.githubusercontent.com/pifou25/docker-jeedom/master/docker-compose.yml
docker compose up -d

Inpsecter un container

docker inspect {{contaier name}}

Exemple : docker inspect jeedom ceci fourni une information intéressante qui est l'IP du container Jeedom, il faudra renseigner cette IP dans les paramètres réseau de Jeedom.

'Entrer' dans un container pour jouer dedans:

On ne se connecte pas en ssh dans un container, à la place on exécute cette commande docker:

docker exec -it {{container name}} /bin/bash

ex: docker exec -it jeedom sh

Re-build un container après avoir modifié Dockerfile

docker-compose up -d --build

stop & remove, puis (re)build and start :

docker-compose down && docker-compose up -d --build

Variables d'Environnement

Docker Compose

Compose accepte un fichier .env contenant les variables à utiliser. Simple syntaxe: KEY=value

Néanmoins, les variables d'environnement et / ou celles en ligne de commande sont prioritaires.

Docker

La substitution dans le fichier yml de Docker-Compose se fait avec la syntaxe suivante: ${KEY}. Pour un container, passer la variable d'environnement est encore plus simple:

web:
  environment:
    - KEY: "value"

Exemple intéressant d'un if dans un Dockerfile en fonction d'une variable d'environnement. Pour ajouter - ou pas - xdebug par un simple paramètre... https://github.com/llaumgui/docker-images-php-fpm/blob/main/8.0/Dockerfile https://stackoverflow.com/questions/43654656/dockerfile-if-else-condition-with-external-arguments

Script Install Mysql Server

Voir les bonnes idées sur ce projet: https://github.com/edgd1er/jeedom-rpi

  • copier des fichiers utiles depuis le repo Jeedom (pour rester à jour des MAJ)
  • build multi-plateformes et multi-arguments pour générer plusieurs TAGs

Liens utiles

Jeedom Community

docker hub container PHP supported tags et readme sur github: supporte PHP jusqu'à 8.0 et 8.1, sur les Debian 10 (Buster) et 11 (Bullseye)

Configure mariadb env with variables

Reference Docker Compose Dockerfile and so on...

Supervisor - nginx

Traefik Pour Docker et en particulier ACME Challenge OVH et aussi le Certificat Wildcard Letsencrypt Traefik

Fixer le port d'une clé USB par son ID

Download docker image from Docker Hub ?

L'image est enregistrée sur le docker hub elle n'est plus à jour :

docker pull pifou25/jeedom

lister l'image docker:

docker image ls ou docker images c'est pareil

démarrer une instance de l'image avec docker run ...

Démarrer l'image officielle après l'avoir téléchargé, avec le nom / hosname / volume partagé / port de publication:

$ docker run --name jeedom --hostname jeedom --detach -v $PWD/jeedom:/var/www/html -v $PWD/mysql:/var/lib/mysql --publish 80:80 pifou25/jeedom