Open unclev opened 6 years ago
Prosody user within the image does not have write (and likely none) permission to operate in the host directories. Compare with my fresh example, where it does not have root permissions.
# root @ dns-studio in /srv/prosody [22:21:17]
$ cat docker-compose.yml
xmpp_server:
image: unclev/prosody-docker-extended:0.10
#restart: unless-stopped
#hostname: *censored*
ports:
- 5222:5222
- 5269:5269
- 5347:5347
- 5280:5280
volumes:
- './config:/etc/prosody'
- './data:/var/lib/prosody'
- './log:/var/log/prosody'
- './modules/community:/usr/lib/prosody/modules-community'
- './modules/custom:/usr/lib/prosody/modules-custom'
# root @ dns-studio in /srv/prosody [22:21:23]
$ mkdir -p config data log modules/community modules/custom
# root @ dns-studio in /srv/prosody [22:22:34]
$ la
total 20K
drwxr-xr-x 2 root root 4,0K мар 5 22:22 config
drwxr-xr-x 2 root root 4,0K мар 5 22:22 data
-rw-r--r-- 1 root root 409 мар 5 22:21 docker-compose.yml
drwxr-xr-x 2 root root 4,0K мар 5 22:22 log
drwxr-xr-x 4 root root 4,0K мар 5 22:22 modules
# root @ dns-studio in /srv/prosody [22:22:36]
$ docker-compose up
Pulling xmpp_server (unclev/prosody-docker-extended:0.10)...
0.10: Pulling from unclev/prosody-docker-extended
1be7f2b886e8: Pull complete
6fbc4a21b806: Pull complete
c71a6f8e1378: Pull complete
4be3072e5a37: Pull complete
06c6d2f59700: Pull complete
d29d2ca5334d: Pull complete
4fba461e6da1: Pull complete
e053e1587f8d: Pull complete
ecd07ac199f9: Pull complete
7b13708a93d2: Pull complete
d31227291d72: Pull complete
960ef5c98364: Pull complete
Digest: sha256:e599694c79d38c032c36780766bc6ec305f5a0c00ac96834f2faca29e790d68b
Status: Downloaded newer image for unclev/prosody-docker-extended:0.10
Creating prosody_xmpp_server_1
Attaching to prosody_xmpp_server_1
xmpp_server_1 | ++ id -u
xmpp_server_1 | ++ id -u prosody
xmpp_server_1 | + [[ 1000 -eq 1000 ]]
xmpp_server_1 | ++ ls -A /etc/prosody
xmpp_server_1 | ++ head -1
xmpp_server_1 | + [[ -z '' ]]
xmpp_server_1 | + cp -Rv /etc/prosody.default/certs /etc/prosody.default/migrator.cfg.lua /etc/prosody.default/prosody.cfg.lua /etc/prosody/
xmpp_server_1 | '/etc/prosody.default/migrator.cfg.lua' -> '/etc/prosody/migrator.cfg.lua'
xmpp_server_1 | cp: cannot create directory '/etc/prosody/certs': Permission denied
xmpp_server_1 | cp: cannot create regular file '/etc/prosody/migrator.cfg.lua': Permission denied
xmpp_server_1 | '/etc/prosody.default/prosody.cfg.lua' -> '/etc/prosody/prosody.cfg.lua'
xmpp_server_1 | cp: cannot create regular file '/etc/prosody/prosody.cfg.lua': Permission denied
prosody_xmpp_server_1 exited with code 1
Prosody user id and group are hardcoded in the Dockerfile and evaluate to 1000.
There are 2 possible solutions:
docker-compose.yml
execute:sudo chown -R 1000:1000 config data log modules
then start as usual.
Important note: ./config
directory must be empty so that the starting script copies its default configuration into it.
prosody-docker-extended
image.docker build --tag jpbaril/prosody-docker-extended:0.10 .
when use jpbaril/prosody-docker-extended:0.10
in your docker-compose.yml
file.
I'm sorry this version of the image does not support changing PUID
and PGID
via --build-arg
.
There is the duplicate #16 .
The related issue #7 .
I'm re-opening this issue.
Jean-Philippe Baril wrote: