barry99
Goto Top

Zugriff auf Filesystem vom Docker mit REST

Hallo Gemeinde,

ich wurde gerade vor ein Problem gestellt und tue mir schwer dahinter zu kommen wie ich es lösen könnte. Eigentlich ist es kein Hexenwerk trotzdem komme ich nicht weiter.

Demnächst werden wir Weblogic-Server in Docker-Container bekommen. Soweit kein Problem. Aus Sicherheitsgründen soll es aber nicht möglich sein direkt auf das Filesystem (mount) zuzugreifen. Unser Testsystem muss aber durchgehen den WLS ein xml-Datei zur Verfügung stelle die sich auch noch dazu dauerhaft ändert (z.B. Zugriffsrechte für Testuser). Jetzt habe ich das so verstanden, dass es mit einem REST-Service möglich sein sollte so einen Durchstich zu machen. Leider habe ich keine Erfahrung mit REST-Services und aus den Beschreibungen und Tutorials werde ich nicht so ganz schlau.
Könnt ihr mir da beim Einstig helfen?

Die xml-Datei wir lokal bei der Testausführung geändert. Das ist schon alles da. Sobald eine Änderung passiert ist, soll diese immer an der gleichen Stelle dem WLS zur Verfügung gestellt werden. Die Docker-Container werden nach Bedarf erstellt und bekommen dadurch immer einen neuen Namen oder ID. Dadurch ist der Pfad nicht immer gleich.
So wie ich es verstehen müsste man immer erst auslesen wie der Container "heißt" und das in den Pfad einfügen und danach kopieren.
Wir könnte man das lösen?

Sollte die Beschreibung nicht so präzise sein entschuldigt bitte, ist echt komplett neue Materie für mich.

Danke schon jetzt für eure Hilfe!

Grüße
Barry

Content-ID: 400598

Url: https://administrator.de/contentid/400598

Ausgedruckt am: 25.11.2024 um 03:11 Uhr

129580
129580 06.02.2019 aktualisiert um 11:26:09 Uhr
Goto Top
Hallo,

Aus Sicherheitsgründen soll es aber nicht möglich sein direkt auf das Filesystem (mount) zuzugreifen.

warum? Bedenke dass ein Docker Container ausschließlich im RAM läuft, d.h. sobald dieser beendet ist, sind auch alle Daten im Container weg.
Für persistente Daten wird auf jeden Fall ein Volume benötigt.

Unser Testsystem muss aber durchgehen den WLS ein xml-Datei zur Verfügung stelle die sich auch noch dazu dauerhaft ändert (z.B. Zugriffsrechte für Testuser).

Mit WLS ist "Weblogic-Server" gemeint?

Könnt ihr mir da beim Einstig helfen?

Klar. REST API ist sehr einfach. Wo hängt es?

Die Docker-Container werden nach Bedarf erstellt und bekommen dadurch immer einen neuen Namen oder ID. Dadurch ist der Pfad nicht immer gleich. So wie ich es verstehen müsste man immer erst auslesen wie der Container "heißt" und das in den Pfad einfügen und danach kopieren.
Wir könnte man das lösen?

Was für ein Pfad? Du greifst über die Ports auf die Applikation im Container zu.

Oder verstehe ich dich hier falsch?

Viele Grüße,
Exception
barry99
barry99 06.02.2019 um 12:50:38 Uhr
Goto Top
Danke die Exceprion für deine Antwort...

Aus Sicherheitsgründen soll es aber nicht möglich sein direkt auf das Filesystem (mount) zuzugreifen.

warum? Bedenke dass ein Docker Container ausschließlich im RAM läuft, d.h. sobald dieser beendet ist, sind auch alle Daten im Container weg.
Für persistente Daten wird auf jeden Fall ein Volume benötigt.

Das ist so face-sad Die Umgebung wo die Container zur Verfügung stehen werden ist abgekapselt und man kommt nur über eine REST-Api rein die auf dem WLS im Container deployed ist. Verstehe ich auch nicht wieso so kompliziert aber da habe ich keinen Einfluss drauf und muss damit leben.

Unser Testsystem muss aber durchgehen den WLS ein xml-Datei zur Verfügung stelle die sich auch noch dazu dauerhaft ändert (z.B. Zugriffsrechte für Testuser).

Mit WLS ist "Weblogic-Server" gemeint?

WLS=Weblogic-Serve - Ja

Könnt ihr mir da beim Einstig helfen?

Klar. REST API ist sehr einfach. Wo hängt es?

Darauf wird es wohl auslaufen, dass ich eine REST-API schreiben muss. Hab es noch nie gemacht, bin auch Tester kein Entwickler, deswegen auch nicht soo fit im Programmieren und tue mir mit dem Einstig etwas schwer...

Die Docker-Container werden nach Bedarf erstellt und bekommen dadurch immer einen neuen Namen oder ID. Dadurch ist der Pfad nicht immer gleich. So wie ich es verstehen müsste man immer erst auslesen wie der Container "heißt" und das in den Pfad einfügen und danach kopieren.
Wir könnte man das lösen?

Was für ein Pfad? Du greifst über die Ports auf die Applikation im Container zu.

Oder verstehe ich dich hier falsch?

Mit Pfad meine ich das File-System. Ich muss gewisse xml oder Config-Dateien im File-System ändern bzw. sie an die richtige stelle kopieren können.

Aber allein durch die Problembeschreibung und dein Nachfragen hat sich das eine oder andere ergeben und ist klarer geworden.
129580
Lösung 129580 06.02.2019 aktualisiert um 13:54:47 Uhr
Goto Top
Die Docker-Container werden nach Bedarf erstellt und bekommen dadurch immer einen neuen Namen oder ID. Dadurch ist der Pfad nicht immer gleich. So wie ich es verstehen müsste man immer erst auslesen wie der Container "heißt" und das in den Pfad einfügen und danach kopieren.
Wir könnte man das lösen?

Was für ein Pfad? Du greifst über die Ports auf die Applikation im Container zu.

Oder verstehe ich dich hier falsch?

Mit Pfad meine ich das File-System. Ich muss gewisse xml oder Config-Dateien im File-System ändern bzw. sie an die richtige stelle kopieren können.


Direkt auf das Filesystem des Containers kannst du vom Host aus nicht zugreifen. Entweder ein Volume erstellen oder eben über die REST API die xml Datei beziehen. Bei dir kommt dann wohl nur das letztere in Frage.

Zu REST selbst findest du zahlreiche Tutorials im Netz. Zum Beispiel: https://www.restapitutorial.com/
Zum Testen von HTTP Requests brauchst du ein HttpClient. Da kann ich dir Postman sehr empfehlen.

Edit: Für WebLogic gibt es bereits fertige REST Clients. Das spart dir einiges an Programmierung:
https://www.oracle.com/technetwork/articles/soa/oliveira-wls-rest-javafx ...
barry99
barry99 06.02.2019 um 15:15:37 Uhr
Goto Top
Danke dir für die Tipps.
Das war eben die Gesamtsicht die mir etwas gefehlt hat.