Einleitung
Mit der MariaDB kannst Du Deine Messwerte komfortabel und vor allem performant erfassen und in den Plots ausgeben. Darüber hinaus kannst Du auch mit anderen Systemen auf diese Daten zugreifen und darauf reagieren. Auswertungen über viele Jahre sind somit kein Problem mehr.
Zusätzlich zum Dockerfile benötigst Du noch folgende Dateien:
init.sql: Erstellt die initiale Datenbankstruktur sowie den DB-User (bitte Passwort ändern)
docker-entrypoint.sh: Dieses Script sorgt für die initiale Konfiguration
Den kompletten Code findest Du in meinem Git-Repository.
Dockerfile
###########################################################
##
## Copyright (c) 2018 Dr. Dennis Krannich
##
## Created: 2019-01-05
## Last updated: 2019-01-06
##
###########################################################
##
## MariaDB
##
###########################################################
FROM alpine:latest
MAINTAINER Dr. Dennis Krannich
ENV TZ 'Europe/Berlin'
RUN apk add --no-cache --update \
tzdata \
bash \
ca-certificates \
wget \
nano
## Installing MariaDB and PasswordGenerator
RUN apk --update --no-cache add \
mariadb \
mariadb-client \
pwgen
## Clean up APT when done
RUN \
rm -rf /var/cache/apk/* /tmp/* /var/tmp/*
## Customizing console
RUN \
echo "alias ll='ls -lah --color=auto'" >> /root/.bashrc
## Setting timezone
RUN \
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \
echo "Europe/Brussels" > /etc/timezone
## Configuring MariaDB
RUN \
mkdir -p /etc/mysql/conf.d \
&& { \
echo '[mysqld]'; \
echo 'skip-host-cache'; \
echo 'skip-name-resolve'; \
echo 'user = mysql'; \
echo 'datadir = /var/lib/mysql'; \
echo '!includedir /etc/mysql/conf.d/'; \
} > /etc/my.cnf
## Importing initial FHEM database
## and starting container
COPY ./files/docker-entrypoint.sh /usr/local/bin/
RUN chmod a+x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 3306
CMD ["mysqld"]
# EOF
docker-compose.yml
mariadb:
restart: always
build: ./mariadb
environment:
MYSQL_ROOT_PASSWORD: fhem1234
ports:
- "3306:3306"
volumes:
- ./mariadb/data:/var/lib/mysql
- ./mariadb/files/init.sql:/docker-entrypoint-initdb.d/fhem-init.sql
networks:
- fhem-network
Hallo,
ich bin bei meiner Recherche zu FHEM @Docker auf deine Seite gestoßen. Ich warte gerade noch auf meine Hardware (Rock Pi 4B) und bin darum schon mal beim einlesen in das Thema. Soweit gefällt mir dein Ansatz sehr gut. Ich hätte auch gerne FHEM mit MariaDB und Portainer als Dockerfiles. Was ich noch gerne zusätzlich hätte wäre nicht nur eine LogDB, sondern auch eine ConfigDB. So ist meine aktuelle Konfiguration, allerdings nicht mit Docker und nur sqlite statt MariaDB. Zusätzlich hab ich auf meinem Synology NAS git installiert und möchte dort dann die Änderungen aktuell halten um bei einem Systemabsturz schnell alles wieder herstellen zu können. Was müsste ich jetzt bei deiner Konfiguration ändern, damit FHEM mit ConfigDB startet??
Gruß Dirk
Hi Dirk,
das ist eine sehr gute Frage. Im Prinzip kannst Du die DB dafür auch nutzen, und entsprechend in der Config auf den Docker-Container linken.
%dbconfig= (
connection => „mysql:database=fhem;host=db;port=3306“,
user => „fhemuser“,
password => „fhempassword“,
);
Bei Host könntest Du den Docker-Container angeben.
Hoffe es hilft, meine Config ist in den Textdateien.
Viele Grüße
Dennis
Hallo,
könnt ihr mit z. B. mit HeidiSqL von einem anderen Rechner auf die Datenbank zugreifen? Ich bekomme nur den Fehler 10061
viele Grüße
Frank