Dockerfile
to create a Docker container image for Openfire.
Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.
Due to Oracle Java license changes, this image is built exclusively using OpenJDK starting with Openfire 4.3.2. This project is otherwise almost entirely identical to sameersbn/openfire.
If you find this image useful here's how you can help:
- Send a pull request with your awesome features and bug fixes
- Help users resolve their issues.
- Support the development of this image with a donation
Insufficient input validation in the Openfire setup process can cause failures when saving the configuration file, even when the built-in tests run successfully.
Openfire 4.3 and later use Log4j 2, which uses a new configuration file. Please make sure you include a log4j2.xml
file in your configuration directory, and use the newest 4.3 or 4.4 image available on Docker Hub.
Before reporting a bug please try updating Docker to the latest version and check if it resolves the issue. Refer to the Docker installation guide for instructions.
SELinux users should try disabling SELinux using the command setenforce 0
to see if it resolves the issue.
If the above recommendations do not help then report your issue along with the following information:
- Output of the
docker version
anddocker info
commands - The
docker run
command ordocker-compose.yml
used to start the image. Mask out the sensitive bits. - Please state if you are using Boot2Docker, VirtualBox, etc.
Automated builds of the image are available on Dockerhub and is the recommended method of installation.
docker pull gizmotronic/openfire:4.6.2
Alternatively you can build the image yourself.
docker build -t gizmotronic/openfire github.com/gizmotronic/docker-openfire
Start Openfire using:
docker run --name openfire -d --restart=always \
--publish 9090:9090 --publish 5222:5222 --publish 7777:7777 \
--volume /srv/docker/openfire:/var/lib/openfire \
gizmotronic/openfire:4.6.2
Alternatively, you can use the sample docker-compose.yml file to start the container using Docker Compose
Point your browser to http://localhost:9090 and follow the setup procedure to complete the installation. The Build A Free Jabber Server In 10 Minutes video by HAKK5 should help you with the configuration and also introduce you to some of its features.
For the Openfire to preserve its state across container shutdown and startup you should mount a volume at /var/lib/openfire
.
The Quickstart command already mounts a volume for persistence.
SELinux users should update the security context of the host mountpoint so that it plays nicely with Docker:
mkdir -p /srv/docker/openfire
chcon -Rt svirt_sandbox_file_t /srv/docker/openfire
You may append options to the startup command to configure the JVM:
docker run -name openfire -d \
[DOCKER_OPTIONS] \
gizmotronic/openfire:4.6.2 \
-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode
To access the Openfire logs, located at /var/log/openfire
, you can use docker exec
. For example, if you want to tail the logs:
docker exec -it openfire tail -f /var/log/openfire/info.log
To upgrade to newer releases:
- Download the updated Docker image:
docker pull gizmotronic/openfire:4.6.2
- Stop the currently running image:
docker stop openfire
- Remove the stopped container
docker rm -v openfire
- Start the updated image
docker run -name openfire -d \
[OPTIONS] \
gizmotronic/openfire:4.6.2
For debugging and maintenance purposes you may want access the containers shell. If you are using Docker version 1.3.0
or higher you can access a running containers shell by starting bash
using docker exec
:
docker exec -it openfire bash