Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Docker - Prosody was unable to find the configuration file

Alles rund um die Server (Web-, Mail-, Datenbank-, Datenaustausch-, etc.) die man unter Linux betreiben kann

Moderator: Moderatoren

Antworten
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 2150
Registriert: 10. Nov 2012, 11:00

Docker - Prosody was unable to find the configuration file

Beitrag von gehrke »

Ist Docker-Volk anwesend?

Ich experimentiere gerade etwas mit Docker rum und versuche, einen funktionsfähigen, nativen Prosody in den Container zu bringen. Die laufende Prosody-Instanz wurde solange gestoppt.

Hierzu scheitere ich scheinbar bei der Übergabe der Hauptkonfigurationsdatei 'prosody.cfg.lua' via Volume:

Host:

Code: Alles auswählen

# ls -l /etc/prosody/prosody.cfg.lua
-rw-r-----. 1 root prosody 7714 Sep  6  2019 /etc/prosody/prosody.cfg.lua

Code: Alles auswählen

# docker run -ti -v /etc/prosody/prosody.cfg.lua:/etc/prosody/prosody.cfg.lua:ro -v /etc/prosody/conf.d/:/etc/prosody/conf.d:ro -v /etc/prosody/certs/:/etc/prosody/certs:ro -v /var/lib/prosody/:/var/lib/prosody:ro --name prosody -p 5222:5222 -p 5269:5269 prosody/prosody 


**************************
Prosody was unable to find the configuration file.
We looked for: /etc/prosody/prosody.cfg.lua
A sample config file is included in the Prosody download called prosody.cfg.lua.dist
Copy or rename it to prosody.cfg.lua and edit as necessary.
More help on configuring Prosody can be found at https://prosody.im/doc/configure
Good luck!
**************************
Wahrscheinlich ein lausiger Anfängerfehler. Für mich sieht das so aus, als ob innerhalb des Containers die Datei nicht gefunden wird. Frage ist nur: warum?

Host ist CentOS8 - an SELinux liegt es scheinbar nicht. Das Journal zeigt auch keine augenfälligen Einträge.
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 2150
Registriert: 10. Nov 2012, 11:00

Re: Docker - Prosody was unable to find the configuration file

Beitrag von gehrke »

Es scheint nicht an der Parametrisierung zu liegen. Mit einem eigenen Dockerfile lande ich beim selben Fehlerbild.

Code: Alles auswählen

[root@vj2 prosody]# ls -l
total 20
-rw-r--r--. 1 root root     159 Mar 29 10:25 Dockerfile
drwxr-x---. 2 root prosody 4096 Mar 29 10:18 certs
drwxr-x---. 2 root prosody 4096 Mar 29 10:18 conf.d
-rw-r-----. 1 root prosody 7714 Sep  6  2019 prosody.cfg.lua

Code: Alles auswählen

[root@vj2 prosody]# cat Dockerfile 
FROM prosody/prosody

ADD prosody.cfg.lua /etc/prosody/prosody.cfg.lua
ADD conf.d/ /etc/prosody/conf.d/
ADD certs/ /etc/prosody/certs

EXPOSE 5222
EXPOSE 5269

Code: Alles auswählen


[root@vj2 prosody]# docker build -t myprosody .
Sending build context to Docker daemon  24.58kB
Step 1/6 : FROM prosody/prosody
 ---> 563fe11a2660
Step 2/6 : ADD prosody.cfg.lua /etc/prosody/prosody.cfg.lua
 ---> Using cache
 ---> b8bf143ae9df
Step 3/6 : ADD conf.d/ /etc/prosody/conf.d/
 ---> Using cache
 ---> 9a6d513047fe
Step 4/6 : ADD certs/ /etc/prosody/certs
 ---> Using cache
 ---> d3968ae12cce
Step 5/6 : EXPOSE 5222
 ---> Using cache
 ---> 158560d271de
Step 6/6 : EXPOSE 5269
 ---> Using cache
 ---> 0c74860b2dbb
Successfully built 0c74860b2dbb
Successfully tagged myprosody:latest
Möglicherweise ein Berechtigungsproblem innerhalb des Containers?
Jetzt fehlt es dem Anfänger an effizienten Debug-Möglichkeiten...
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 2150
Registriert: 10. Nov 2012, 11:00

Re: Docker - Prosody was unable to find the configuration file

Beitrag von gehrke »

OK, dann eben das uneffektive Debugging:

Ausgabe zum Dockerfile hinzugefügt:

Code: Alles auswählen

CMD ls -l /etc/prosody/prosody.cfg.lua
Das zeigt beim Start des Containers tatsächlich ein Berechtigungsproblem:

Code: Alles auswählen

The config file is not readable by the 'prosody' user.
Prosody will not be able to read it.
Error was /etc/prosody/prosody.cfg.lua: Permission denied
Also das Dockerfile angepasst:

Code: Alles auswählen

ADD --chown=prosody:prosody prosody.cfg.lua /etc/prosody/prosody.cfg.lua
ADD --chown=prosody:prosody conf.d/ /etc/prosody/conf.d/
ADD --chown=prosody:prosody certs/ /etc/prosody/certs
Nun ist dieser Fehler weg! Und ein neuer da...
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
Join the fediverse: https://fediverse.party/en/fediverse/
Antworten