3.3.1. WAST-Docker (Stand 28.Feb. 2019)

Maintainer: Ali Rasim Kocal

3.3.1.1. Einleitung

3.3.1.2. Aufbau eines Standalone Docker Containers open_wiTTFind

zur Arbeit mit WiTTFind und WAST-Tools

Dieser open-wiTTFind Container soll die notwendigen Dienste und Repositories enthalten, die notwendig sind, dass der Container auf Windows/MAC und LINUX Umgebungen innerhalb über einen Dockerserver läuft.

  • Der Container wird unter gitlab.cip.ifi.lmu.de aufgebaut.

3.3.1.3. Inhalt des Containers:

3.3.1.3.1. notwendige Programme Repositories mit Source Files

im Container

C++:

  • SIS

  • wf

python

  • wfa

  • axs

  • rcs

python, perl, mongodb:

  • reader

3.3.1.3.2. Die öffentlichen Transkriptionen und Faksimile

In diesem Container stehen die Transkriptionen der beiden Dokumente

  • Ms-114

  • Ts-213

zur Verfügung. Die Transkriptionen und Faksimile stehen unter eine Open-Source Lizenz und können zu wissenschftlichen Zwecken verwendet werden. Weiterverreitung der Transkriptionen und Faksimile ist ohne ausdrücklicher schriftlicher Genehmigung der Rechteinhaber verboten

3.3.1.3.3. Das opensource Lexikon WiTTLex-open

Im WiTTLex-open Lexikon ist ein Extrakt aus unserem Wittgenstein Lexikon. Hier finden Sie nur die Lexikoneinträge aus dem kompletten WiTTLex, die in Ms-114 und Ts-213 vorkommen. Der Extrakt der Lexikoneinträge wird per Pythonskript automatisch bei make deploy mit dem target make frequlist Ms114 Ts213 im witt-data Repository über Freqenzlisten von MS-114 und Ts-213 erstellt. Die Lexikoneinträge werden mit den target make WiTTLex-open nach WiTTLex-open kopiert.

neue Targets für make deploy in witt-data

  • make freqlist Ms114 Ts213

  • make WiTTLex-open

3.3.1.3.4. notwendige Daten witt-data-open (zum Download)

Verfügbarmachung der Daten und Faksimile, Faksimile-Koordinaten innerhalb des Containers (Achtung: es wird als Lexikon nur WiTTLex-open übernommen!!)

3.3.1.3.5. Transfer von witt-data in das gezippte tar Archiv: witt-data-open.tgz

Die Zusammenstellung der Daten für den öffentlichen Datencontainer wird innerhalb des witt-data Repositories bei er Ausführung des targets make deploy mit einem neuen target to-wittdata-open erledigt.

  • die Daten von Ms-114 und Ts-213 werden getagged und expandiert und als solche in das Archiv kopiert.

  • das wiTTLex-open Lexikon mit den Wörtern von Ms-114 und Ts-213 werden als solche in das Archiv kopiert.

3.3.1.4. Quickstart zum Docker

Die tools docker und docker-compose müssen auf dem Host installiert sein.

3.3.1.4.1. Zum Bauen

# Initialisiere alle submodule:
git submodule update --init --recursive
# Baue die images:
docker-compose build
# Bringe das System hoch:
docker-compose up
# Sende eine Anfrage an wfa:
curl -d '{ "query": "d", "max": 10 }' localhost:8081

3.3.1.4.2. Arbeit mit der Docker Software

Die docker-software ist nur über die Kommandozeile anzusprechen. Dazu öffnen sie unter Linux/Mac ein Konsolen-Fenster, unter Windows starten Sie die “Aufforderungs-App” oder auch Windows-Power Shell genannt. Die Powershell öffnet sich mit dem Befehl cmd. In diesem Eingabefenster können sie nun die docker Kommandos eingeben.

docker -v
Docker version 19.03.5, build 633a0ea

3.3.1.4.3. Userzugriff auf die Docker Software

Damit unter Linux ein Nutzer mit der Dockersoftware arbeiten möchte, muss er zur Gruppe docker gehören. (ungünstige/gefährliche Variante: Als Superuser kann man die Dockersoftware immer verwenden.)

3.3.1.4.4. Docker Images und Konfigurationsdatei

  • Zum Starten von docker-images braucht eine Konfigurationsdatei, die docker-compose.yml heißen muss.

dir docker-compose.yml
  • Docker braucht zum Arbeiten docker-container, sogenannte docker-images.

Wenn Sie zum ersten mal einen Container laden wollen, dann erledigen Sie mit dem folgenden Befehl (Achtung: Das Laden des Containers kann längerre Zeit dauern)

Unser docker Image heißt wast_all_2020_02_28.tar und ist zum Download bereitgestellt: https://www.cis.uni-muenchen.de/kurse/max/wast/data//wast_all_2020_02_28.zip

Kopieren sie den Container in ihr Homeverzeichnis in einen neuen Folder (z.B. my_wittfind) und entpacken Sie den gezippten File mit (unzip z.B. mit 7zip (Windows) oder unzip (Linux = `unzip``)).

Wechsel Sie in entpackte Archiv:

cd wast_all
cd wast_server

In diesem Verzeichnis finden sie den yml Konfigurationsfile und die WAST-Container.

docker load -i wast_2020_02_28_0952.tar

Zum Überprüfen, welche docker images geladen sind, kann der folgende Befehl benutzt werden:

C:\Users\max\my_wittfind\wast_all_2020_02_28\wast_server>docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
wast/wf              graph_patch         c24072138a05        3 days ago          258MB
wast/wf              latest              c24072138a05        3 days ago          258MB
wast/wittsim         latest              26a49c1ba2f7        6 days ago          978MB
wast/wittfind-web    latest              fa480ccfc397        6 days ago          248MB
wast/sis             latest              18446a9dcc3d        6 days ago          207MB
<none>               <none>              6241214ae231        6 days ago          256MB
mongo                3.6-xenial          d3fdbdf0f17b        9 days ago          438MB
wast/quadro-reader   latest              1b0ef6fa01e6        10 days ago         1.2GB
wast/nax             latest              aa3802ff9eff        12 days ago         362MB
wast/wfa             latest              961583cb1887        12 days ago         398MB

3.3.1.4.5. Docker Images starten

Wenn die benötigten Images gefunden sind, die docker-compose.yml Datei vorhanden ist, kann wittfind mit docker-compose gestartet werden.

Der folgende Befehl muss in der Verzeichnis ausgeführt werden, wo die docker-compose.yml Datei sich befindet.

docker-compose up

Windows: Wir erlauben dem Docker auf unser Laufwerk zuzugreifen. (Share it)

3.3.1.4.6. Arbeit mit dem wittfind-open Docker Container über den Browser

Wenn der wittfind-open Container gestartet ist, wird im Container ein WEB-Server gestartet und kann auf eigenen Rechner mit firefox über die WEB-Adresse http://localhost:8080 angesprochen werden

3.3.1.4.7. Troubleshooting

Es kann beim Startup vorkommen, dass manche Komponenten nicht richtig gestartet werden. In dem Fall soll der Befehl docker-compose up von einer neuen Kommandozeile aus dem gleichen Folder nochmal aufgeführt werden, um diese neuzustarten.

Um das System komplett neuzustarten reicht es nicht den Prozess (zB mit Ctrl-C) zu beenden, dazu muss danach noch docker-compose down ausgeführt werden.

3.3.2. Zweiter Dockercontainer: Wittsim

Wir haben auch einen zweiten Container vorbereitet, mit dem sie

  • ein Debian LINUX

  • python3

  • perl

  • gcc

  • make usw. installiert haben In diesem Container können Sie Linuxaufgaben und auch die Aufgaben zur Ähnlichkeitssuche durchführen.

Dieses Debian-docker Image heißt wittsim.tar.zip und ist zum Download bereitgestellt: https://www.cis.uni-muenchen.de/kurse/max/wast/data/wittsim.tar.zip

Auch hier holen sie den Container, entpacken ihn und wechseln Sie in das Verzeichnis wittsim.tar. Dort laden, starten und verbinden sich mit einer bash shell mit dem Container

docker load -i wittsim.tar
docker run -it wast/wittsim /bin/bash
docker run -v <localdir>:/data -it wast/wittsim /bin/bash

Nun sind sie im wittsim Container als Nutzer “root” in einem Debian-Linux System. Nun können linux Befehle, Installationen, python Programme usw. starten. Ihr lokales Verzeichnis ist im Container im Volume “/data” verfügbar.

Wenn sie weiter Pakete im Container installieren müssen, z.B. für die Aufgabe zur Infrastruktur, dann geben Sie in der Docker folgende Befehle ein.

# apt-get install update
# apt-get install libxml2-utils
# pip3 install lxml
# cpan -i HTML::Parser

Verändern von Dateien aus dem Container:

Herausfinden, was die ID des Containers ist:


docker ps

Zum Beispiel: 952ec94eaaa3

Kopieren von Dateien (beispielsweise flaskServer.py):

sudo docker cp 952ec94eaaa3:/opt/wittsim/flaskServer.py flaskServer.py

Die Datei muss unter neuem Namen gespeichert werden, bevor sie zurückgelegt werden kann:

sudo docker cp flaskServer2.py 952ec94eaaa3:/opt/wittsim/

Viel Spass!!!

3.3.2.1. Status

3.3.2.1.1. Containers

  • [x] wf

  • [x] wfa

  • [x] wittfind-web

  • [x] sis4

  • [x] nax

  • [x] reader

3.3.2.1.2. After work: löschen aller Container auf ihrem Rechner

docker system prune --all