jjlavaza/rpi-jeedom: image Jeedom docker optimisée pour Rpi4/k3s/php7/Mqtt/Mosquitto
Image Jeedom Docker-kubernetes arm + lib mosquitto-MQTT
jjlavaza/rpi-jeedom
jeedom dockerfile for armv7 with mosquitto client on php7 - jjlavaza/rpi-jeedom
https://hub.docker.com/r/jjlavaza/jeedom
- Image docker jjlavaza/jeedom spécifique optimisée pour kubernetes, car embarque les librairies nécessaires au redémarrage auto avec mosquitto-client pour gérer les messages MQTT.
- Regénérer et publier régulièrement sur DockerHub lors d'évolution majeure
- Le but est de fournir un conteneur à jour et directement opérationnel en cas de redémarrage. Ainsi dans un cluster type k3s, en cas de plantage, un "deploy" Jeedom est redémarré automatiquement, via l'ensemble du paramétrage externalisé dans une base de données.
- Pour les instructions de déploiement "docker", voir la documentation codafog/jeedom-rpi/.
- Pour les détails d'une installation k3s, se référer à une documentation spécifique (cf. liens en bas de page).
- Pour compiler se placer au niveau du dockerfile et lancer:
sudo docker build -t jjlavaza/jeedom .
A voir si la dernière commande est utile pour finaliser la configuration des packages:
dpkg --configure -a apt upgrade
Dockerfile adapté du docker file de codafog/jeedom-rpi/, utilise plutôt l'image de balenalib, afin d'éviter les erreurs de mise à jour d'apt. De plus
FROM balenalib/armv7hf-debian
# Enable building ARM container on x86 machinery on the web (comment out next line if built on Raspberry)
#RUN [ "cross-build-start" ]
ENV SHELL_ROOT_PASSWORD Jeedom123
# JR
# RUN apt-get clean && apt-get update && apt upgrade && apt-get install --no-install-recommends -y wget openssh-server supervisor mysql-client
RUN apt-get clean && apt-get update && apt upgrade && apt-get install --no-install-recommends -y wget openssh-server supervisor apt-utils
RUN echo "root:${SHELL_ROOT_PASSWORD}" | chpasswd && \
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
sed -i 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd
RUN mkdir -p /var/run/sshd /var/log/supervisor
WORKDIR /etc
RUN rm /etc/motd && wget -q https://raw.githubusercontent.com/jeedom/core/master/install/motd
WORKDIR /etc/supervisor/conf.d
RUN wget -q https://raw.githubusercontent.com/jeedom/core/master/install/OS_specific/Docker/supervisord.conf
WORKDIR /root
RUN rm -f /root/.bashrc && wget -O .bashrc -q https://raw.githubusercontent.com/jeedom/core/master/install/bashrc
RUN wget -O install_docker.sh -q https://raw.githubusercontent.com/jeedom/core/master/install/install.sh && chmod +x /root/install_docker.sh
RUN /root/install_docker.sh -s 2;exit 0
RUN /root/install_docker.sh -s 4;exit 0
RUN /root/install_docker.sh -s 5;exit 0
RUN /root/install_docker.sh -s 7;exit 0
RUN /root/install_docker.sh -s 10;exit 0
RUN wget -q https://raw.githubusercontent.com/jeedom/core/master/install/OS_specific/Docker/init.sh && chmod +x /root/init.sh
#Ajout JR à partir du DockerFile de codafog
RUN apt update && apt upgrade && apt install mosquitto mosquitto-clients make php-pear libmosquitto-dev php-dev
RUN pecl install Mosquitto-alpha && echo "extension=mosquitto.so" >> /etc/php/7.3/cli/php.ini && echo "extension=mosquitto.so" >> /etc/php/7.3/apache2/php.ini
# pour essayer de charger la conf automatique
RUN dpkg --configure -a
CMD ["/root/init.sh"]
# stop processing ARM emulation (comment out next line if built on Raspberry)
#RUN [ "cross-build-end" ]
Divers liens :
- dd : https://opensource.com/article/18/7/how-use-dd-linux
- exmple de déploiements: https://medium.com/@abenahmed1/serverless-fonctions-%C3%A0-la-demande-avec-k3s-via-fission-kubeless-et-openfaas-26848d70f3bf
- kubectl commands cheatsheet: https://medium.com/faun/kubectl-commands-cheatsheet-43ce8f13adfb
- Hands on K3S (Using K3OS) - Rémy Boulanouar - Medium
- Install Helm to ARM k3s cluster Hello yoshwata NG — A simple theme for Hugo
- Building up K3s Cluster | dockerlabs