Benutzer-Werkzeuge

Webseiten-Werkzeuge


docker

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

docker [2021/03/26 12:58] – Erstanlage itchy2docker [2021/03/28 20:49] (aktuell) – gelöscht itchy2
Zeile 1: Zeile 1:
-======Betrieb von Middleware und Frontend im Docker-Container===== 
-Der Betrieb von Volkszaehler im Docker-Container ist durchaus eine Alternative, sofern beispielsweise mehrere Anwendungen auf einem Server laufen oder der Anwender auf stark "vorgefertigte" Komponenten zurückgreifen möchte. 
-=====Vorgefertigte Container===== 
-Im Docker-Hub gibt es vom Volkszaehler Projekt vorgefertigte Container. Dieser Beitrag bezieht sich ausschließlich auf den offiziellen Container [[https://hub.docker.com/r/volkszaehler/volkszaehler]]. Es gibt auch eine Vielzahl von inoffiziellen Container; teilweise mit anderer Bauart. 
-=====Ist der fertige Container direkt einsatzfähig?===== 
-Die Antwort lautet ganz klar Jein.  
  
-Ein Blick in das Docker-Compose File [[https://github.com/volkszaehler/volkszaehler.org/blob/master/docker-compose.yml]] zeigt uns, dass hier neben dem Volkszaehler noch eine Datenbank (MariaDB) und der Push-Server enthalten sind. Die Nutzung des fertigen Docker-Compose Files führt dazu, dass neben dem Volkszaehler auch eine neue Datenbankinstanz erzeugt wird. Wer "auf der grünen Wiese" anfangen möchte, hat hiermit eine schnelle und unkomplizierte Lösung zur Hand. Wer allerdings bereits eine existierende Volkszaehler-Instanz mit einer separaten Datenbank hat oder ggf. MySQL verwenden möchte, stößt mit dem Lösungsansatz schnell an die Grenzen. Auch die Benutzerdaten und Datenbanknamen für die Datenbank sind in Volkszaehler fest vorgegeben. Credentials und DB-Namen müssen in der Datenbank zu den vordefinierten Werten in Volkszähler passen: 
-<code> 
-      MYSQL_DATABASE: volkszaehler 
-      MYSQL_USER: vz 
-      MYSQL_PASSWORD: demo 
-      MYSQL_ROOT_PASSWORD: admin_demo 
-</code> 
- 
-=====Individuelle/angepasste Lösung===== 
-Wem diese Vorgaben nicht in der Konzept passen, muss leichte Veränderungen an dem vorgefertigten Image vornehmen. 
- 
-<note>Ich habe es bisher nicht geschafft das original GIT-Repo komplett durch einen Docker-Build Prozess laufen zu lassen (komplikationen mit PHP Versionen in den vorgefertigten Build-Umgebungen. Daher beziehe ich mich hierbei nur auf die Erweiterung der fertigen Container.</note> 
- 
-Zunächst erfolgt der Clone des gesamten Repositories in ein beliebiges Verzeichnis: <code>git clone git://github.com/volkszaehler/volkszaehler.org.git ~/volkszaehler.org</code> 
-Aus diesem Clone benötigten wir folgende Dateien: 
-<code>~/volkszaehler.org/etc/config.dist.yaml 
-~/volkszaehler.org/htdocs/js/options.js</code> 
-In der config.dist.yaml muss der Datenbank Host und Passwort angepasst werden. Beispiel: 
-<code>sed -i 's/  host: localhost/  host: mysqldb/g' config.dist.yaml 
-sed -i 's/  password: demo/  password: volkszaehler_password/g' config.dist.yaml</code> 
- 
-In der options.js kann (optional!) der Demo-Server deaktiviert werden. 
- 
-<note> Mir ist es bisher noch nicht gelungen eine lauffähige Version der options.js ohne Demo-Server zu erzeugen. Dieser Punkt muss hier im Nachgang noch eingepflegt werden </note> 
- 
-Die Dateien config.dist.yaml und ggf. options.js werden nach der Modifikation in einem neuen Order erstellt. In diesem Ordner erstellen wir ebenfalls jetzt das Dockerfile mit folgendem Inhalt: <code>FROM volkszaehler/volkszaehler 
-workdir . 
-COPY config.dist.yaml /vz/etc/config.yaml 
-COPY options.js /vz/htdocs/js/options.js 
-</code> 
- 
-Im Nachgang kann der Dockerbuild Prozess gestartet werden. Ich habe dies ebenfalls über ein kleines Script gelöst: 
-<code> 
-#Adjust to local path for dockerfile, modified config.yaml, modified options.js 
-cd ~/docker/build/20210325_volkszaehler 
- 
-#Definition of Datetime for Tag 
-dt=$(date +'%Y-%m-%d_%H-%M'); 
- 
-docker build . -t volkszaehler:$dt 
-</code> 
- 
-Nach dem Build-Prozess kann der Container mit den persönlichen Anmeldedaten über ein docker-compose.yml File gestartet werden. Anbei ein Beispiel für ein minimalistisches Compose File.  
-<code> 
-version: '3' 
-services: 
- 
- 
-  volkszaehler: 
-    image: volkszaehler:2021-03-25_23-57 
-    ports: 
-    - 8080:8080 
-    restart: always 
-</code> 
-<note>Die Datenbank und der Volkszaehler-Container müssen im gleichen Netzwerk liegen. Dies kann später auch in das Compose File integriert werden.</note> 
-<note>Ich habe den Volkszaehler Push-Server nicht im Einsatz. Daher habe ich hierzu keine Versuche unternommen. Der Push-Server kann/darf gerne noch ergänzt werden.</note> 
- 
- 
-=====offene Punkte===== 
-  * Aggregationen in der Middleware  
-  * Mapping der Config-Files ohne erneutes Docker Build 
-  * Deaktivierung Volkszaehler Demo Kanäle 
-  * Überprüfung des Ansatzes für den Push-Server 
docker.1616759924.txt.gz · Zuletzt geändert: 2021/03/26 12:58 von itchy2