Coder Social home page Coder Social logo

docker-mapcache's Introduction

Right now this repository is being used for learning GIT

docker-mapcache's People

Contributors

barpasen avatar edigonzales avatar pfeimich avatar schmandr avatar vvmruder avatar

Watchers

 avatar  avatar  avatar

docker-mapcache's Issues

make background transparent

Is there a reason we do not have a transparent background? Can we try to add the transparent=true (since we use png) query param in the mapcache.xml?

Volume _docker-mapcache-tiles_ in den WMTS-Container nur Readonly mounten

Das ist kein Muss, aber im Prinzip müssen ja nur die Seeder-Jobs schreiben können. Der eigentliche WMTS liefert ja nur aus. Und so kan man gleich noch verhindern, dass er versucht, die Kachel on the fly zu generieren, falls eine Kachel fehlt.

Dies kann vermutlich nur durch Umstellen auf Verwendung eines OpenShift-Templates erreicht werden.

Gute Lösung für mapcache.xml für Entwicklung, Test- und Produktionsumgebung suchen

Im Moment existieren 3 mapcache.xml: Eines pro "erwarteter Umgebung". Das ist für die Nachführung nicht ideal.

Beim "MapCache-Guru" nachfragen, was es hier für Lösungen gäbe. U.U. etwas entwickeln lassen.

Solange das nicht eleganter gelöst ist, wären noch folgende Anpassungen sinnvoll:

  • Die Umgebungsvariable ENVIRONMENT direkt im Dockerfile auf leeren String setzen. Dann kann man den Container lokal ohne --e ENVIRONMENT='' starten, was im Moment recht unschön ist. (Siehe https://github.com/sogis/docker-mapcache/blob/master/README.md#run)
  • Das Default-mapcache.xml soll vielleicht besser auf localhost oder so zeigen
  • Das mapcachetest.xml und mapcacheproduction.xml in der ersten Zeile mit einem Kommentar versehen, dass sie abgeleitet werden sollen von mapcache.xml; entsprechenden Befehl mit angeben.

Streifen in den Orthofoto-Kacheln

Einfach nur so als Idee, falls wir ratlos dastehen sollten: Falls die Streifen in den Orthotofo-Kacheln auch nach den Anpassungsarbeiten am WMS noch bestehen, könnte man probieren, das Image komplett umstellen auf debian:stretch-backports

Log Rotation für access.log einrichten

Die Zugriffe auf Apache werden im Moment in /var/log/apache2/other_vhosts_access.log geloggt, das grösser und grösser wird. (Nach ca. 1 Woche in Betrieb 100MB.) Nicht gerade ideal.

Meine anvisierte Lösung:
/etc/apache2/conf-available/other-vhosts-access-log.conf so anpassen, dass dort die Zeile CustomLog ... ungefähr so lautet:

CustomLog |/usr/bin/rotatelogs -t ${APACHE_LOG_DIR}/other_vhosts_access.log 604800 vhost_combined

(Vielleicht braucht es hier noch das eine oder andere Anführungszeichen.)

Damit auch für das ErrorLog die gleiche Lösung im Einsatz ist, würde ich dies ebenfalls in diesem File aufnehmen, ungefähr so:

ErrorLog |/usr/bin/cat

Dann könnte man dies entsprechend wieder herausnehmen aus

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND", "-c", "ErrorLog |/usr/bin/cat"]

Container soll auch https anbieten

Im Moment wird die SSL-Verschlüsselung auf der Route terminiert. Hierzu ist auf der Route das Zertifikat für *.so.ch nötig, das aber irgendwann abläuft und erneuert werden muss.

Andere Variante wäre, die SSL-Verbindung bis zum Container durchzureichen. OpenShift kann in diesem Fall ein Zertifikat generieren, das man in den Pod einbinden kann. Dies wurde auch für andere Pods im Projekt gdi so gelöst. Anleitung: https://torstenwalter.de/openshift/nginx/sidecar/tls/encryption/certificates/2017/08/07/nginx-as-sidecar-container-to-secure-openshift-traffic.html

Damit das alles geht, muss der Container neben dem Port 8080 auch 8443 exposen, und die ganze Apache-Konfiguration muss SSL-tauglich gemacht werden.

Weiter muss dann das Deployment in OpenShift vermutlich über ein OpenShift-Template erfolgen, wie in der verlinkten Anleitung beschrieben.

https ist übrigens deshalb nötig, weil die Anfragen auf den WMTS über den API Gateway geschlauft werden. Der Reverse Proxy von nginx will https-Verbindungen nicht auf http weiterleiten.

Error in Dockerfile

Line

ADD dockerlog-run.sh /etc/service/dockerlog/run

is not working:

Step 20/26 : ADD dockerlog-run.sh /etc/service/dockerlog/run
ADD failed: stat /var/lib/docker/tmp/docker-builder483136800/dockerlog-run.sh: no such file or directory

Performance Seeder verbessern

Der Seeder Cron Job braucht 10 Stunden und mehr. Diese Zeit muss kürzer werden.

Mögliche Ansätze:

  • Testen mit GlusterFS
  • Testen, die Tiles zuerst irgendwo auf das Filesystem des Containers zu schreiben und erst danach aufs Volume docker-mapcache-tiles zu verschieben
  • Eigenen QGIS Server im OpenShift-Projekt betreiben; hier ist dann jedoch daran zu denken, dass QGIS Server Zugriff auf die Rasterdaten benötigt
  • Nur neu gelieferte Gemeinden neu kacheln
  • Es gibt bestimmt weitere Möglichkeiten

"Apache Default Page" abschalten

Vermutlich durch Löschen des index.html. Oder die Datei durch eine andere ersetzen, die einen Link auf WMTSCapabilities.xml enthält.

Umask setzen

Umask auf 0007 setzen (zumindest für den Seeder). So hat weiterhin auch die Gruppe Schreibrechte, alle anderen aber nicht. (Bzw. dann auch prüfen, ob der Seeder tatsächlich die umask berücksichtigt beim Anlegen von neuen Files.)

Betriebshandbuch schreiben

  • Inkl. Doku, wie nginx (API Gateway) konfiguriert werden muss
  • Inkl. Doku, was das AIO machen musste (der DNS der public-Zone muss geo-wmts.so.ch und geo-wmts-t.so.ch auflösen können); wurde ausgeführt durch Pascal Aeby.
  • Ebenfalls nicht vergessen: Umgebungsvariablen, SSL-Zertifikat auf der Route

Seeder: Evtl. Neustart verhindern

Wenn der Seeder-Befehl fehlschlägt, weil z.B. der WMS etwas Ungültiges liefert oder gerade ein Problem hat, startet er nochmal von vorne. Ich war der Meinung, dass dies durch

verhindert wird. Es scheint aber nicht der Fall zu sein.

Vielleicht ist es aber auch genau richtig, dass er einfach neu startet. Wenn das Seeden nicht mehr so lange geht, ist es auch kein so grosses Problem mehr.

Cron Job: `concurrencyPolicy` richtig setzen

concurrencyPolicy auf forbid ("forbids concurrent runs, skipping the next run if the previous has not finished yet") oder replace ("cancels the currently running job and replaces it with a new one") setzen. Jetzt ist es gar nicht gesetzt und dadurch auf dem Standard allow ("allows Cron Jobs to run concurrently").

Doku siehe https://docs.openshift.com/container-platform/3.7/dev_guide/cron_jobs.html#creating-a-cronjob.

Hängt irgendwie auch mit #6 zusammen.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.