NOTE this version is built on top of the original Dockerfile prosody created. The main change is the use of Debian Jessie instead of Ubuntu 14 and the fact this version is pullable from a recent version of docker-engine.
This is the Prosody Docker image building repository. Its only really designed to be used on the Prosody build server for pushing to the Docker registry.
For images please see here: Prosody on Docker.
It works by apt-install
-ing the latest version of prosody from the ufficial apt repo.
Docker images are built off an debian:jessie base.
docker run -d --name prosody -p 5222:5222 freeluna/prosody
A user can be created by using environment variables LOCAL
, DOMAIN
, and PASSWORD
. This performs the following action on startup:
prosodyctl register local domain password
Any error from this script is ignored. Prosody will not check the user exists before running the command (i.e. existing users will be overwritten). It is expected that mod_admin_adhoc will then be in place for managing users (and the server).
The image exposes the following ports to the docker host:
- 80: HTTP port
- 5222: c2s port
- 5269: s2s port
- 5347: XMPP component port
- 5280: BOSH / websocket port
- 5281: Secure BOSH / websocket port
Note: These default ports can be changed in your configuration file. Therefore if you change these ports will not be exposed.
Volumes can be mounted at the following locations for adding in files:
- /etc/prosody:
- Prosody configuration file(s)
- SSL certificates
- /var/log/prosody:
- Log files for prosody - if not mounted these will be stored on the system
- Note: This location can be changed in the configuration, update to match
- Also note: The log directory on the host (/logs/prosody in the example below) must be writeable by the prosody user
- /usr/lib/prosody-modules (suggested):
- Location for including additional modules
- Note: This needs to be included in your config file, see https://prosody.im/doc/installing_modules#paths
docker run -d \
-p 5222:5222 \
-p 5269:5269 \
-p localhost:5347:5347 \
-e LOCAL=romeo \
-e DOMAIN=shakespeare.lit \
-e PASSWORD=juliet4ever \
-v /data/prosody/configuration:/etc/prosody \
-v /logs/prosody:/var/log/prosody \
-v /data/prosody/modules:/usr/lib/prosody-modules \
freeluna/prosody
Use the build-docker.sh
script as follows:
./build-docker.sh freeluna/prosody latest
Where argument 1 is a pointer to the build deb
file that you'd like to make an image from and 'version_tag' is the tag you'd like to push to the Docker registry with.
You can specify multiple tags by adding additional tag names to the end of the command. This is useful where a for example release 0.10.4 is made which also consitutes 'latest', '0.10-nightly', '0.10.4', '0.10' images.
After running the script will clean up any images generated (but not the base images - for efficiency purposes).