Jump to content

Docker Template weiter "Features" Installieren


Go to solution Solved by MVLP,

Recommended Posts

Hallo zusammen,

 

ich bin gerade auf der suche nach einer Lösung für eine Frage bzw. Idee von mir.

Auf meinem UnRaid läuft paperless-ngx und ich würde gerne in den Container einen mqtt client installieren.

Das installieren an sich ist ja kein Problem, aber ich würde das auch gerne nach einem Update wieder haben.

Was ja erstmal nicht geht außer man installiert es nach jedem Update neu. Ich habe gesehen, dass man bei nativem Docker ein "Dockerfile" anlegt, wo der Befehl zum installieren enthalten ist.

https://kleypot.com/paperless-ngx-push-notifications/#:~:text=out the notification.-,Set up MQTT Client,-First%2C we need

 

Nun ist die fragen wie kann ich das in UnRaid umsetzen?

 

Link to comment
6 hours ago, MVLP said:

Nun ist die fragen wie kann ich das in UnRaid umsetzen?

 

naja, das ist nicht die "Natur" von Docker und kein Dockermanager unterstützt dies so ...

 

aber ...

 

es gibt Docker Images die haben "customs" integriert, sprich, man kann addond (Pakete) per Variablen/scripts definieren und bei jedem Start hinzufügen ...

 

Beispiel linuxserver, https://www.linuxserver.io/blog/2019-09-14-customizing-our-containers

 

oder es gibt (gab) die Möglichkeit per extra / post ... aber ich meine das wurde restriktiert da es ein großes Sicherheitsrisiko darstellt ... kannst danach mal suchen und testen.

 

oder als letzte Option, baust dir was drum herum, Richtung, script ... Beispiel

 

1/ docker updates laufen Nachts um 1.00 Uhr

2/ script läuft um 1.30 Uhr wo dein Paket installiert

 

dabei legst das script ein File an als "check file" um zu schauen ob es überhaupt nötig ist usw usw ... workaround halt ;)

Link to comment
2 hours ago, Amane said:

Ich habe mir die entrypoint.sh bei Nextcloud gemappt und dort änderungen vorgenommen, müsste eigentlich auch darüber gehen nicht?

 

Warum?

Wäre es nicht einfacher ein custom Script zu mounten das ausgeführt wird vor dem Container start? Ist doch bei den meisten Container möglich und so vorgesehen.

 

19 hours ago, MVLP said:

Nun ist die fragen wie kann ich das in UnRaid umsetzen?

Kommt natürlich drauf an von wem der Container ist aber ich würd den Maintainer fragen ob es nicht möglich ist so wie bei Linuxserver ein script zu mounten das beim start als root ausgeführt wird (und auch bei meinen Containern) und einfach dort alles zu installieren.

  • Like 1
Link to comment
32 minutes ago, ich777 said:

Warum?

Ach ich habe bei Nextcloud die UID und GID von www-data auf 99 statt 33 gesetzt.

 

31 minutes ago, ich777 said:

Wäre es nicht einfacher ein custom Script zu mounten das ausgeführt wird vor dem Container start? Ist doch bei den meisten Container möglich und so vorgesehen.

Es kann gut sein das ich den normalen Weg nicht kenne, da entrypoint.sh bereits ein Skript ist das vor dem Start ausgeführt wird, nahm ich dieses.

Wenn es da einen Weg gibt der ebenso direkt funktioniert. darfst du mir den gerne veraten. Aber ich möchte nicht bei jedem Container auf den Maintainer zu gehen müssen.

 

Link to comment
59 minutes ago, ich777 said:

Kommt natürlich drauf an von wem der Container ist aber ich würd den Maintainer fragen ob es nicht möglich ist so wie bei Linuxserver ein script zu mounten das beim start als root ausgeführt wird (und auch bei meinen Containern) und einfach dort alles zu installieren.

 

Danke für den Hinweis, ich nutze den offiziellen Container von paperless-ngx.

Ich versuche da mal ein Feature Request zu erstellen, vielleicht wird das ja umgesetzt.

 

  • Like 1
Link to comment
53 minutes ago, Amane said:

Wenn es da einen Weg gibt der ebenso direkt funktioniert. darfst du mir den gerne veraten.

Bei den linuxserver Containern (sind ja generell alle s6-overlay container die auf supervisord basieren) ist es einfach so das du ein (oder ggf. mehrere) Script dort hin mountest und das wird direkt beim start als root ausgeführt:

/etc/cont-init.d/<DEINSCRIPTNAME>

(das sollte eigentlich in allen s6-overlay containern funktionieren wenn ich mich nicht täusche)

 

Bei meinen Containern muss das script dort hin gemounted werden (ich verwende kein supervisord) :

/opt/scripts/user.sh

 

 

53 minutes ago, Amane said:

Aber ich möchte nicht bei jedem Container auf den Maintainer zu gehen müssen.

Musst du nicht unbedingt machen aber ich fände es cool wenn das jeder Maintainer irgendwie hinzufügt weil dann user einen möglichkeit haben

  • Like 1
Link to comment
  • Solution

Also ich habe noch mal genauer bei paperless geschaut und es gibt wirklich die Möglichkeit ein Skript beim Starten vom Container laufen zu lassen.

Nach etwas versuchen hat es auch geklappt.

 

Es muss wie folgt aussehen:

image.thumb.png.049153783d7b08fe866fb5e79ef79061.png

 

Dann muss der Ordner und das Skript mit chmod 555 verändert werden, dann läuft das auch soweit.

 

Danke @ich777 und @Amane für euren Input!

  • Like 2
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...