Docker - ich verstehe es nicht bzw. wie kann ich vorgehen?

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Docker - ich verstehe es nicht bzw. wie kann ich vorgehen?

Beitrag von ObiTobi » 24.09.2021 17:43:05

Moin,

für meine Ubiquiti Sachen (Switche, UAC) habe ich den Controller in ein Docker-Container auf alten Pi3 verfrachtet.
Das funktioniert so weit und tut was es soll. Was ich nicht hinbekomme ist - dem Controller meine Zertifikate mitzugeben, bzw so mitzugeben dass die auch funktionieren.

Als ich nur die UAC hatte, hatte ich die Controller Software auf einer Windows VM installiert die nicht permanent lief (Statistiken, Fehler o.ä waren mir egal. Es lief halt gut). Da war es mit den Zertifikaten irgendwie einfach - in der Controller Software neuen Zertifikat generieren lassen, durch meine eigene CA signieren, importieren fertig.
Nur wie ich das mit Docker bewältigen kann ist mir doch ein Rätsel. Ich habe etliche WEB-Seiten besucht wo "irgendetwas" in diese Richtung beschrieben wird aber entweder stelle ich mich echt ungeschickt ein oder sehe echt den Walt vor lauter Bäumen nicht mehr.

Vom Ansatz denke/ hoffe ich wäre folgendes am einfachsten:
Während der Bau kann ich das generieren von neuen Zertifikat anstoßen. Das Zertifikat kann ich anschließend aus dem Docker-Container kopieren und durch meine CA Signieren. Nur wie importiere ich es dann?

die letzten Zeilen in meinem Dockerfile sind:

Code: Alles auswählen

ENTRYPOINT ["/usr/bin/java", "-Xmx512M", "-jar", "/usr/lib/unifi/lib/ace.jar"]
CMD ["start"]
So hoffe ich man könnte das ENTRYPOINT komplett wegnehmen und CMD statt "start" ein Shellskript hinterlegen, welches ein Zertifikat importiert und erst dann das das Java Gelumpe startet
Nur das kriege ich irgendwie nicht hin. Also ein geschicktes Shellskript zu bauen, welches auch das Java passend startet. Nach dem ersten starten könnte ich das Zertifikat aus dem Verzeichnis (gemounted) löschen und Java sollte starten. Aber es will nicht. Wenn ich "docker ps" aufrufe, so wird scheinbar der Prozess regelmäßig neugestartet
Ich habe also während der Installation ein Skript hinein kopiert und mit chmod +x ausführbar gemacht. Dann im Dockerfile ENTRYPOINT komplett gelöscht und als CMD ["unifistart.sh"] hinterlegt

Code: Alles auswählen

#/bin/sh

FILE=/usr/local/cert/UniFi.crt

if [ -f "$FILE" ]; then
/usr/bin/java -jar /usr/lib/unifi/lib/ace.jar import_cert /usr/local/cert/UniFi.crt
fi
/usr/bin/java -Xmx512M -jar /usr/lib/unifi/lib/ace.jar &
Lässt sich es so nicht realisieren?

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: Docker - ich verstehe es nicht bzw. wie kann ich vorgehen?

Beitrag von ObiTobi » 24.09.2021 20:40:14

So kaum habe ich es hier gepostet und dann doch noch mal nachgedacht und tata es läuft perfekt :D
In großen und ganzen musste ich diese Zeile ändern

Code: Alles auswählen

/usr/bin/java -Xmx512M -jar /usr/lib/unifi/lib/ace.jar &
in

Code: Alles auswählen

/usr/bin/java -Xmx512M -jar /usr/lib/unifi/lib/ace.jar start

Antworten