Änderungen

Civil Commons:Roadmap 2020 - Docker Technologie

7.004 Byte hinzugefügt, 13:06, 18. Jun. 2019
keine Bearbeitungszusammenfassung
==Ubuntu LTS with SSH==
... im Folgenden eine Anleitung zur Erstellung eines Images, das ein Ubuntu Linux LTS mit SSH-Zugang bereitstellt - basierend auf:   https://github.com/art567/docker-ubuntu-sshd
Das zur Erstellung des Images genutzte Dockerfile:
==FIWARE Keyrock==
((... hat Jürgen Wachtel ist dran - 2Stand 1.34.2019))am Laufen ... Dokumentation ist hier zu ergänzen.
 
==MySQL==
Wir haben bei unseren Tests die Erfahrung gemacht, dass mehrere Container mit MySQL auf einem Docker-Host sich gerne ins Gehege kommen. Aus diesem Grund und weil's schlanker ist, werden wir einen Container mit MySQL bereitstellen, in dem dann alle Systeme, die eine Datenbank brauchen, ihre Daten ablegen.
 
Erwartungsgemäß ist die Bereitstellung eines MySQL-Containers denkbar einfach:
 
[https://hub.docker.com/_/mysql https://hub.docker.com/_/mysql]
 
docker pull mysql
docker run --name mysql <em>-p 3306:3306</em> -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
==Nextcloud==
...
<div class="crayon-pre" style="fontline-sizeheight: 12px 15px !important; linefont-heightsize: 15px 12px !important; -moz-tab-size: 4; -o-tab-size: 4; -webkit-tab-size: 4; tab-size: 4;">
<span class="crayon-e">sudo </span><span class="crayon-e">docker </span><span class="crayon-e">pull </span><span class="crayon-v">collabora</span><span class="crayon-o">/</span><span class="crayon-v">code</span>
<div class="crayon-line"><div class="crayon-pre" style="fontline-sizeheight: 12px 15px !important; linefont-heightsize: 15px 12px !important; -moz-tab-size: 4; -o-tab-size: 4; -webkit-tab-size: 4; tab-size: 4;">
<span class="crayon-e">sudo </span><span class="crayon-e">docker </span><span class="crayon-v">run</span> <span class="crayon-o">-</span><span class="crayon-v">t</span> <span class="crayon-o">-</span><span class="crayon-v">d</span> ''--network=host'' <span class="crayon-o">-</span><span class="crayon-i">p</span> <span class="crayon-cn">127.0.0.1</span><span class="crayon-o">:</span><span class="crayon-cn">9980</span><span class="crayon-o">:</span><span class="crayon-cn">9980</span> <span class="crayon-o">-</span><span class="crayon-i">e</span> <span class="crayon-s">'domain=172\\.17\\.206\\.167'</span> <span class="crayon-o">--</span><span class="crayon-e">restart </span><span class="crayon-v">always</span> <span class="crayon-o">--</span><span class="crayon-v">cap</span><span class="crayon-o">-</span><span class="crayon-e">add </span><span class="crayon-e">MKNOD </span>
<span class="crayon-v">collabora</span><span class="crayon-o">/</span><span class="crayon-v">code</span>
<div class="crayon-pre" style="fontline-sizeheight: 12px 15px !important; linefont-heightsize: 15px 12px !important; -moz-tab-size: 4; -o-tab-size: 4; -webkit-tab-size: 4; tab-size: 4;"><div class="crayon-line" id="crayon-5c93df2f34f50429336560-1"><span class="crayon-e">sudo </span><span class="crayon-v">netstat</span> <span class="crayon-o">-</span><span class="crayon-v">lnpt</span></div>
<div class="crayon-line">
Active Internet connections (only servers)<br>Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name<br>tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      705/systemd-resolve<br>tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      908/sshd<br>tcp        0      0 127.0.0.1:9981          0.0.0.0:*               LISTEN      19752/loolwsd<br>tcp6       0      0 :::80                   :::*                    LISTEN      20306/apache2<br>tcp6       0      0 :::22                   :::*                    LISTEN      908/sshd<br>tcp6       0      0 :::9980                 :::*                    LISTEN      19752/loolwsd</div>
... läuft :-)
 
====2019-04-06====
Für die Installation von Bluespice 3 sind anstelle der entsprechenden Anweisungen bzgl. MediaWiki die folgenden Anweisungen in das Dockerfile aufzunehmen:
 
# Install zip and unzip<br>RUN apt-get update && apt-get install zip unzip<br><br>ENV BLUESPICE_ZIP_FILE BlueSpice-free-3.0.1.zip<br><br>#RUN mkdir /var/www/html<br>ADD ${BLUESPICE_ZIP_FILE} /var/www/html/${BLUESPICE_ZIP_FILE}<br><br>RUN unzip /var/www/html/${BLUESPICE_ZIP_FILE} "bluespice/*" -d /var/www/html \<br>    && mv /var/www/html/bluespice/* /var/www/html \<br>    && rm -r /var/www/html/bluespice \<br>    && chown -R www-data:www-data /var/www/html/extensions /var/www/html/skins /var/www/html/cache /var/www/html/images \<br>    && rm /var/www/html/${BLUESPICE_ZIP_FILE}
Neben dem Dockerfile ist das Zip-Archiv mit Bluespice bereitzustellen.
 
 
... Erstellen des Images:
 
sudo docker build --tag bluespice .
... Erstellen des Containers:
 
sudo docker run --name bluespice -p 8080:80 -d mediawiki-20190406
... Command line des laufenden Containers:
 
sudo docker exec -i -t bash
... dann antwortet auf Port 8080 des Dockerhosts Bluespice mit dem Installationsdialog.
 
Bluespice bietet im Installationsdialog nicht die Verwendung einer "integrierten" Datenbank (SQLite o.ä.) an. Es muss für Bluespice also eine MySQL/MariaDB bereitgestellt werden.
==Konfiguration von Mail-Versand aus Container==
... z.B. über einen Office365-Account: Hier ist eine angemessen einfache Lösung wohl die Verwendung der Utility sSMTP: [https://www.kuerbis.org/2018/05/mailversand-mit-php-aus-einem-docker-container/ https://www.kuerbis.org/2018/05/mailversand-mit-php-aus-einem-docker-container/] [http://linuxpitstop.com/install-ssmtp-to-send-emails-to-gmail-and-office3655/ http://linuxpitstop.com/install-ssmtp-to-send-emails-to-gmail-and-office3655/] [https://docs.j7k6.org/ssmtp-office-365/ https://docs.j7k6.org/ssmtp-office-365/] ... eine besonders gute Beschreibung - Installation Ubuntu unter Hyper-V und Installation, Text sSMTP: [https://decatec.de/home-server/linux-einfach-e-mails-senden-mit-ssmtp/ https://decatec.de/home-server/linux-einfach-e-mails-senden-mit-ssmtp/] ... und hier ein Beispiel (bzgl. WordPress), wie sSMTP im Dockerfile installiert wird: [https://github.com/xgodon/RIG/blob/master/dockerized-apps/wordpress/Dockerfile https://github.com/xgodon/RIG/blob/master/dockerized-apps/wordpress/Dockerfile]   ===... erfolgreich getestet (Ubuntu unter Hyper-V, noch außerhalb Docker)===sudo nano /etc/ssmtp/ssmtp.conf  #<br /> # Config file for sSMTP sendmail  #<br /> # The person who gets all mail for userids < 1000<br /> # Make this empty to disable rewriting.<br /> root=info@civilcommons.eu<br /><br /> # The place where the mail goes. The actual machine name is required no<br /> # MX records are consulted. Commonly mailhosts are named mail.domain.com<br /> mailhub=smtp.office365.com:587<br /><br /> # Where will the mail seem to come from?<br /> rewriteDomain=civilcommons.eu<br /><br /> # The full hostname<br /> #hostname=info@civilcommons.eu<br /> hostname=192.168.137.40<br /><br /> # Are users allowed to set their own From: address?<br /> # YES - Allow the user to specify their own From: address<br /> # NO - Use the system generated From: address<br /> FromLineOverride=YES<br /><br /> AuthUser=info@civilcommons.eu<br /> AuthPass=********<br /> UseTLS=YES <br /> UseSTARTTLS=YES  sudo <span class="crayon-v">nano</span> <span class="crayon-o">/</span><span class="crayon-v">etc</span><span class="crayon-o">/</span><span class="crayon-v">ssmtp</span><span class="crayon-o">/</span><span class="crayon-v">revaliases</span>  # sSMTP aliases<br /> #<br /> # Format:       local_account:outgoing_address:mailhub<br /> #<br /> # Example: root:your_login@your.domain:mailhub.your.domain[:port]<br /> # where [:port] is an optional port number that defaults to 25.<br /> root:info@civilcommons.eu:smtp.office365.com:587<br /> ccom:info@civilcommons.eu:smtp.office365.com:587     <span class="crayon-v">echo -n 'Subject: test\n\nTesting ssmtp' | sendmail -v sfrenzel@kybeidos.de</span>  [<-] 220 DB7PR04CA0019.outlook.office365.com Microsoft ESMTP MAIL Service ready at Sun, 24 Mar 2019 19:35:17<br />   +0000<br /> [->] EHLO 192.168.137.40<br /> [<-] 250 SMTPUTF8<br /> [->] STARTTLS<br /> [<-] 220 2.0.0 SMTP server ready<br /> [->] EHLO 192.168.137.40<br /> [<-] 250 SMTPUTF8<br /> [->] AUTH LOGIN<br /> [<-] 334 VXNlcm5hbWU6<br /> [->] aW5mb0BjaXZpbGNvbW1vbnMuZXU=<br /> [<-] 334 UGFzc3dvcmQ6<br /> [<-] 235 2.7.0 Authentication successful<br /> [->] MAIL FROM:<info@civilcommons.eu><br /> [<-] 250 2.1.0 Sender OK<br /> [->] RCPT TO:<sfrenzel@kybeidos.de><br /> [<-] 250 2.1.5 Recipient OK<br /> [->] DATA<br /> [<-] 354 Start mail input; end with .<br /> [->] Received: by 192.168.137.40 (sSMTP sendmail emulation); Sun, 24 Mar 2019 19:35:18 +0000<br /> [->] From: "Civil Commons" <info@civilcommons.eu><br /> [->] Date: Sun, 24 Mar 2019 19:35:18 +0000<br /> [->]<br /> [->] .<br /> [<-] 250 2.0.0 OK <DB6PR07MB34805AC3E5BCE181980C278BCD5D0@DB6PR07MB3480.eurprd07.prod.outlook.com>  <br />   [Hostname=DB6PR07MB3480.eurprd07.prod.outlook.com]<br /> [->] QUIT<br /> [<-] 221 2.0.0 Service closing transmission channel  
==Docker-Entwicklungsumgebung unter Windows==
Als Umgebung zur Bereitstellung virtueller Maschinen steht in Windows 10 Hyper-V zur Verfügung.
Auf unserer Nextcloud steht unter "https://share.civilcommons.eu/remote.php/webdav/Urban%20Data%20Space%20-%20Projekt/Digital%20Service%20Package/Development/Building%20Development%20Environment/HowTo_InstallLocalUbuntu_WIN10HYPERV_V02.txt" eine gute Anleitung zur Verfügung, wie ein Linux-Server mit eigenem Netzwerk-Switch und statischer IP-Adresse aufgesetzt werden kann.
Falls bei der Installation noch keine statische IP angegeben wurde - der folgende Link beschreibt, wie's im Nachhinein konfiguriert werden kann:
[https://askubuntu.com/questions/1029531/how-to-setup-a-static-ip-on-ubuntu-server-18-04 Ubuntu 18 Static IP]
 
s.a. [https://decatec.de/home-server/ubuntu-server-als-hyper-v-gastsystem-installieren-und-optimal-einrichten/ https://decatec.de/home-server/ubuntu-server-als-hyper-v-gastsystem-installieren-und-optimal-einrichten/]
==NGINX Reverse Proxy==
[https://medium.com/@oliver.zampieri/self-signed-ssl-reverse-proxy-with-docker-dbfc78c05b41 Gute Hier eine sehr gute und knappe Doku. wie NGINX als Reverse-Proxy aufgesetzt wird.]
Installation von NGINX auf Ubuntu 18: [https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-18-04-quickstart Beschreibung]
Nach Anpassung der Konfiguration ...
<code>/etc/init.d/nginx restart</code>
 
 
 
==Migration==
===1===
MySQL, Nextcloud (ohne Collabora Office) und Bluespice 3 (mit Extensions) auf Docker
 
- noch ohne Übernahme von Content
 
===1.1===
Prüfung, ob WordPress mit UserPro-Plugin unproblematisch zu installieren ist
 
===1.2===
- mit Mailversand (sSMTP) in allen Images und Captcha in MediaWiki<br />- zugreifbar über Reverse Proxy<br />- neues Data-Verzeichnis von Nextcloud auf Data-Server<br />- auf Subdomains "share20", "publish20", "home20"
 
===1.3===
- ab hier alte Server "Read-only"<br />- Übernahme von Content auf neue Server (Move von Nextcloud-Verzeichnissen, Export/Import von MediaWiki-Content)
 
===2===
Collabora Office
 
===3===
KnowAge (auf FIWARE) mit MRN-Daten explore
 
===4===
Authentifizierung über OAuth2 - wobei idealerweise der OAuth2-Server ein Keyrock auf FIWARE ist.
BdB_Heidelberg, Bibliothek_KH, DAI_Makerspace_Projekt, Graphiken KF, Landfried, N_E_U_Project, Projekt_BdB_Heidelberg, Projekt_Civil_Commons, Projekt_Landfried, Projekt_OG, Team_UIEG_Heidelberg, Team_UIEV_Heidelberg, UIEG_Heidelberg, UIEV_Heidelberg, Bürokrat, Administrator, Widget-Bearbeiter
955
Bearbeitungen