• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Docker - Prosody was unable to find the configuration file

gehrke

Administrator
Teammitglied
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:
# ls -l /etc/prosody/prosody.cfg.lua
-rw-r-----. 1 root prosody 7714 Sep  6  2019 /etc/prosody/prosody.cfg.lua
Code:
# 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.
 
OP
gehrke

gehrke

Administrator
Teammitglied
Es scheint nicht an der Parametrisierung zu liegen. Mit einem eigenen Dockerfile lande ich beim selben Fehlerbild.
Code:
[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:
[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:
[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...
 
OP
gehrke

gehrke

Administrator
Teammitglied
OK, dann eben das uneffektive Debugging:

Ausgabe zum Dockerfile hinzugefügt:
Code:
CMD ls -l /etc/prosody/prosody.cfg.lua

Das zeigt beim Start des Containers tatsächlich ein Berechtigungsproblem:
Code:
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:
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...
 
Oben