
Docker Guide
Introduction
Openfire can be deployed as part of a container architecture. This document covers how the official images are built, how to deploy them, and how you can build your own.
Topics that are covered in this document:
Builds
You can build the container image locally as you might any other, using:
docker build . -t openfire:mytag
Note that Openfire is a large application in a monorepo with a sizeable number of dependencies, and as such doesn't use a multi-stage build for Docker. Instead it builds an image from an already compiled repository. For more repeatable builds, try:
build/docker/buildWithDocker.sh
Usage
You can run a simple container with:
docker run --rm -d -p 5222:5222 -p 5269:5269 -p 7070:7070 -p 7443:7443 -p 9090:9090 igniterealtime/openfire:sometag
and configure for the internal database. You can add volumes to achieve persistence between restarts and upgrades.
For more complex or productionised setups, you could use docker-compose.
In this example, we've used wait-for-it to allow a postgres database service (not shown) to finish launching prior to starting Openfire. This allows us to have premade files in /data/conf with which to launch Openfire.