NGINX - Server ready nginx: [emerg] dlopen() "/var/lib/nginx/modules/ndk_http_module.so" failed (Err

Gast #6210267
Lesenswert?
• ▲
▼
Hallo,

ich habe folgendes Problem mit dem Nginx in diesem Docker-Container 
(https://github.com/linuxserver/docker-letsencrypt):
1
Server ready
2
nginx: [emerg] dlopen() "/var/lib/nginx/modules/ndk_http_module.so" failed (Error loading shared library /var/lib/nginx/modules/ndk_http_module.so: No such file or directory) in /etc/nginx/modules/devel_kit.conf:1
3
nginx: [emerg] dlopen() "/var/lib/nginx/modules/ndk_http_module.so" failed (Error loading shared library /var/lib/nginx/modules/ndk_http_module.so: No such file or directory) in /etc/nginx/modules/devel_kit.conf:1
4
nginx: [emerg] dlopen() "/var/lib/nginx/modules/ndk_http_module.so" failed (Error loading shared library /var/lib/nginx/modules/ndk_http_module.so: No such file or directory) in /etc/nginx/modules/devel_kit.conf:1
5
nginx: [emerg] dlopen() "/var/lib/nginx/modules/ndk_http_module.so" failed (Error loading shared library /var/lib/nginx/modules/ndk_http_module.so: No such file or directory) in /etc/nginx/modules/devel_kit.conf:1
6
nginx: [emerg] dlopen() "/var/lib/nginx/modules/ndk_http_module.so" failed (Error loading shared library /var/lib/nginx/modules/ndk_http_module.so: No such file or directory) in /etc/nginx/modules/devel_kit.conf:1
7
^C[cont-finish.d] executing container finish scripts...
8
[cont-finish.d] done.
9
[s6-finish] waiting for services.
10
[s6-finish] sending all processes the TERM signal.
11
[s6-finish] sending all processes the KILL signal and exiting.

Kennt jemand eine Lösung?

TR.OLL
Gast #6210954
Lesenswert?
• ▲
▼
So Container sind mir ja suspekt, sind die eher etwas wie ein Binary das 
einmal gebaut wird oder eher wie ein Festplattenabbild mit einer 
Linuxinstallation?
Also kannst du in dem Container selber Zeug installieren mit einem 
Paketmanager innerhalb des Containers oder bist du da auf den 
"Hersteller" des Containers angewiesen dass der einen neuen Container 
baut in dem dann die nötige Datei enthalten ist?
Gast #6213347
Lesenswert?
• ▲
▼
guest schrieb:
> imonbln schrieb:
>> Dann Füll da den Issue Tracker aus und lass dir von dem Erzeuger der
>> Docker Container helfen.
>
> Den scheint es schon zu geben:
> https://github.com/linuxserver/docker-letsencrypt/issues/429

Ach was? Na, das wird wohl auch der TE gewesen sein und genau wie hier 
ist er dort nicht mit den nötigen Infos übergekommen. Dann wird das so 
halt nix. Hier hat er nicht mal das OS genannt, noch, ob er das Ding 
fertig runtergeladen oder selbstgebaut hat.

guest schrieb:
> Man könnte das fehlende Modul natürlich auch einfach im apk Aufruf im
> Dockerfile ergänzen.

Man könnte das Modul auch woanders suchen gehen, z.B. unter /usr/lib 
statt unter /var/lib.

MfG
#6213831
Lesenswert?
• ▲
▼
-gb- schrieb:
> So Container sind mir ja suspekt, sind die eher etwas wie ein Binary das
> einmal gebaut wird oder eher wie ein Festplattenabbild mit einer
> Linuxinstallation?

Letzteres. Wobei die Installation so minimal wie möglich gehalten wird, 
weil sie ja nur dazu dient, ein bestimmtes Programm auszuführen.

> Also kannst du in dem Container selber Zeug installieren mit einem
> Paketmanager innerhalb des Containers oder bist du da auf den
> "Hersteller" des Containers angewiesen dass der einen neuen Container
> baut in dem dann die nötige Datei enthalten ist?

Zunächst mal muss man zwischen Image und Container unterscheiden. Wovon 
du hier sprichst, ist eher ein Image. Der Container ist dann die 
Instanz, die auf dem Rechner läuft. Docker-Images werden hierarchisch 
aufgebaut. Man kann also ein beliebiges Image als Basis nehmen, da noch 
Sachen selber dazu installieren, konfigurieren oder was immer, um ein 
neues Image zu erhalten, das man in einem Container laufen lassen kann. 
Welche Basis verwendet werden soll und welche Kommandos für das neue 
Image aufgerufen werden sollen, definiert man in einem Dockerfile.
Man kann in der Regel auch im Container eine Shell starten und dort von 
Hand  die entsprechenden Kommandos aufrufen, aber wenn man das gleiche 
später nochmal reproduzieren will, muss man die Schritte dann wieder 
alle von Hand machen. Wenn man das über's Dockerfile gemacht hat, kann 
man mit diesem  File einfach später wieder das identische Image 
automatisiert erzeugen lassen.

Εrnst B. schrieb:
> ich würd' das trennen.
> ein Container nginx, ein Container letsencrypt.

Wie sorgt man dann dafür, dass der Certbot auf die nginx-Konfig 
zugreifen kann?
#6213939
Lesenswert?
• ▲
▼
Rolf M. schrieb:
> Wie sorgt man dann dafür, dass der Certbot auf die nginx-Konfig
> zugreifen kann?

Das mag ich garnicht. Bei komplexen nginx-configs hat letsencrypt da 
eine "configdatei-Zerstörungs-Automatik", bei einfachen configs kann man 
die Handvoll Optionen auch selber einstellen. Also: Für mich ist da kein 
Zugriff von letsencrypt auf die nginx-config nötig.
Nur: Zugriff auf den www-root, um dort die .well-known - Daten ablegen 
zu können, und umgekehrt Zugriff vom nginx auf die erzeugten 
Zertifikate.

Aber jedem das Seine, wenn du da den All-in-one Container bevorzugst, 
das Dockerfile unverdächtig aussieht, und du vom mitinstallierten PHP 
keine Alpträume kriegst, dann spricht da ja nix dagegen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.