staging.inyokaproject.org

Grundsätzliche Fragen zu Docker auf offline Maschinen

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

zettberlin

Avatar von zettberlin

Anmeldungsdatum:
23. Oktober 2006

Beiträge: 623

Hallo Leute,

ich muss ODK Central mit docker-compose auf Debian 10 in Gang bringen, weil es ODK Aggregate (Tomcat Appliance) nicht mehr gibt.

1.) der Server muss ohne Internetverbindung, nur über das lokale Netzwerk Daten von der ODK Android App entgegennehmen. Geht das?

2.) ich muss die von ODK gesammelten Daten in einer LAMP Anwendung auf dem gleichen server anzeigen. Dazu hatte ich ODK Aggregate in eine mysql DB schreiben lassen. Wenn Central mit Docker betrieben wird, kann ich dann dessen DB auch vom lokalen LAMP aus ansprechen?

Für die Installation und Updates kann ich die Maschine auch mit dem Internet verbinden, nur muss ich sicherstellen, dass sie eben auch ohne INet laufen kann.

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Deine Fragen sind schon sehr speziell Infrastruktur-abhängig - und gleichzeitig sehr allgemein, was das Verständnis betrifft.

Ich denke es ist gut wenn du dich erstmal selbst kundig machst. Wenn du konkrete Fragen hast, am besten nochmal einzeln und möglichst konkret hier stellen.

Beispiel: odk central kenne ich nicht, ich arbeite aber seit 3 Jahren täglich mit einer Docker Umgebung. Ich kann dir also allgemeine und spezielle Fragen zu Containerdiensten beantworten. Aber halt so gar nichts zu deiner Applikation. Das müsstest du trennen bzw selbst abstrahieren. Dann kann dir bestimmt geholfen werden.

Gruß BillMaier

zettberlin

(Themenstarter)
Avatar von zettberlin

Anmeldungsdatum:
23. Oktober 2006

Beiträge: 623

BillMaier schrieb:

Deine Fragen sind schon sehr speziell Infrastruktur-abhängig - und gleichzeitig sehr allgemein, was das Verständnis betrifft.

Ich denke es ist gut wenn du dich erstmal selbst kundig machst. Wenn du konkrete Fragen hast, am besten nochmal einzeln und möglichst konkret hier stellen.

Beispiel: odk central kenne ich nicht, ich arbeite aber seit 3 Jahren täglich mit einer Docker Umgebung. Ich kann dir also allgemeine und spezielle Fragen zu Containerdiensten beantworten. Aber halt so gar nichts zu deiner Applikation. Das müsstest du trennen bzw selbst abstrahieren. Dann kann dir bestimmt geholfen werden.

Gruß BillMaier

Erst mal vielen Dank, ja ich sollte wohl spezieller werden:

Infrastruktur:

LAMP mit PHP Browserfrontend plus Java GIS(Geoserver)

Apache ist auch Reverse Proxy für ODK Central, das via Docker läuft und ein eigenes Frontend und REST API via nginX hat, die Dienste von ODK Central sehen so aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
root@machine:/home/debian/central# docker-compose ps
       Name                     Command                  State                                          Ports                                    
-------------------------------------------------------------------------------------------------------------------------------------------------
central_postgres_1   docker-entrypoint.sh postgres    Up             5432/tcp                                                                    
enketo               docker-entrypoint.sh /bin/ ...   Up             8005/tcp                                                                    
enketo_redis_cache   docker-entrypoint.sh redis ...   Up             6379/tcp                                                                    
enketo_redis_main    docker-entrypoint.sh redis ...   Up             6379/tcp                                                                    
mail                 /bin/entrypoint.sh exim -b ...   Up             25/tcp                                                                      
nginx                /bin/bash /scripts/odk-set ...   Up (healthy)   0.0.0.0:4443->443/tcp,:::4443->443/tcp, 0.0.0.0:4480->80/tcp,:::4480->80/tcp
pyxform              waitress-serve --port=80 - ...   Up                                                                                         
secrets              docker-entrypoint.sh ./gen ...   Exit 0                                                                                     
service              docker-entrypoint.sh ./wai ...   Up             8383/tcp          

Ist Dir bekannt, ob irgendwas davon eine Internetverbindung benötigt? BZW: ob Docker außer für Upgrades, für irgendwas davon nicht ohne Internet funktioniert?

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

zettberlin schrieb:

BZW: ob Docker außer für Upgrades, für irgendwas davon nicht ohne Internet funktioniert?

Das finde ich witzig ☺

Dein Server macht Mail, http, proxy - und du fragst, ob du dafür Internet brauchst... . Klar kannst du das alles im LAN benutzen. Aber für Mail?

Also: Ich nehme an, dass die Services alle erstmal laufen, ohne dass du sie mit dem Internet verbindest. Ob das so Sinn macht, musst du selbst wissen.

Docker läuft erstmal lokal, solange alle Images da sind - und du nicht irgendwo eingestellt hast, dass er sie jedes Mal neu pullen soll (gibts zumindest bei kubernetes, ich weiß nicht ob docker-compose sowas mittlerweile auch hat). Und du die Images nicht löschst.

Kannst es ja mal ausprobieren - ich sehe da erstmal keine großen Probleme.

zettberlin

(Themenstarter)
Avatar von zettberlin

Anmeldungsdatum:
23. Oktober 2006

Beiträge: 623

BillMaier schrieb:

Das finde ich witzig ☺

Dein Server macht Mail, http, proxy - und du fragst, ob du dafür Internet brauchst... .

OK, ich erklärs mal: die Systeme, die wir machen, werden zum Sammeln und auswerten von Daten im Feld eingesetzt, oft in Regionen, in denen man sich auch mit Strom selber versorgen muss, ob man Internetz hat, hängt von der Entfernung zur nächsten Antenne ab und ob irgend ein Bergrücken im Wege rumsteht. Die Feldteams sammeln GIS Daten um z.B. gute Bauplätze für Solarkraftwerke zu finden oder den Zustand von Wäldern zu dokumentieren.

Unser System sammelt die Daten(dazu nehmen wir ODK Central, das Datenpakete auch via WLAN von Smartphones/Tablets empfangen kann). Die User können zusätzliche Dokumentation schreiben und Dateien hochladen, in einem Frontend werden daraus dann Landkarten gezeichnet... Wir haben die Vorgabe, dass das wochenlang ohne Internetverbindung funktionieren muss und es darf kein Bubu machen, wenn eine stehende Internetverbindung zusammenbricht. Die Maschinen für den Feldeinsatz müssen außerdem in das Standardgepäck(kleine Sporttasche) für die Evakuierung per Hubschrauber passen, falls unfreundlich wirkende junge Männer mit vergoldeten Sturmgewehren zu Pferde auftauchen.

Klar kannst du das alles im LAN benutzen. Aber für Mail?

Dass die Mashine Mail an extrene Adressen nur schicken kann, wenn sie online ist, müssen die Kunden schon hinnehmen. Wir können aber auch mit lokalen Mailadressen arbeiten, von denen dann bei Gelegenheit weitergeleitet wird...

Also: Ich nehme an, dass die Services alle erstmal laufen, ohne dass du sie mit dem Internet verbindest. Ob das so Sinn macht, musst du selbst wissen.

Docker läuft erstmal lokal, solange alle Images da sind - und du nicht irgendwo eingestellt hast, dass er sie jedes Mal neu pullen soll (gibts zumindest bei kubernetes, ich weiß nicht ob docker-compose sowas mittlerweile auch hat). Und du die Images nicht löschst.

Ahh, das ist schon mal eine sehr brauchbare Info. Danke. Es ist also irgendwie mit git vergleichbar: alles bleibt, wie es nach dem letzten Pull war und funktioniert, solange man nicht ausdrücklich updates anfordert, richtig?

Kannst es ja mal ausprobieren - ich sehe da erstmal keine großen Probleme.

cewl 😉

Das mit dem Ausprobieren ist nicht total einfach, weil der aktuelle Prototyp erst mal bei einem französischen Provider läuft, der natürlich am Backbone hängt und bevor alles in Sack und Tüten ist, kaufen wir auch noch nicht die Standalone Hardware fürs Feld... hmmm.. ich hab da ja noch einen alten Thinkpad... mit dem könnte ichs ja mal versuchen...

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Das klingt ja spannend. Und seltsam zugleich (die bewaffneten Männer und Evakuierung, wo auch immer ihr da unterwegs seid...)

Genau: auf irgendeine lokale Maschine packen und das Netzwerkkabel (oder DSL-Kabel) kappen.

Die lokalen Docker Images siehst du mit

docker image list

Wie gesagt: solange da nicht irgendwo pull oder sowas steht, sollte das passen.

Abgesehen von Docker wäre für dich vll noch interessant, was der Rechner als erstes macht (oder machen soll), wenn er eine Internetverbindung hat. Nicht dass da ein Prozess alles blockiert.

Ob das relevant ist für dich weiß ich nicht...

zettberlin

(Themenstarter)
Avatar von zettberlin

Anmeldungsdatum:
23. Oktober 2006

Beiträge: 623

BillMaier schrieb:

Das klingt ja spannend. Und seltsam zugleich (die bewaffneten Männer und Evakuierung, wo auch immer ihr da unterwegs seid...)

Das war im Südsudan...

Genau: auf irgendeine lokale Maschine packen und das Netzwerkkabel (oder DSL-Kabel) kappen.

Die lokalen Docker Images siehst du mit

docker image list

Wie gesagt: solange da nicht irgendwo pull oder sowas steht, sollte das passen.

Abgesehen von Docker wäre für dich vll noch interessant, was der Rechner als erstes macht (oder machen soll), wenn er eine Internetverbindung hat. Nicht dass da ein Prozess alles blockiert.

Danke für die Tipps! Ja, wir haben schon die Erfahrung gemacht, dass man für das Scenario alles mögliche testen muss. Beim alten ODK hat sich z.B. ein Teil der Browseroberfläche nicht aufgebaut, wenn es nicht irgendwas von Google runterladen konnte.. Systemdienste wie NTP machen in den letzten Jahren aber kaum noch echte Probleme...

Antworten |