Available images
| Image | Backend | Docker Hub |
|---|---|---|
phelger/phoss-smp-xml | XML (file-based) | https://hub.docker.com/r/phelger/phoss-smp-xml |
phelger/phoss-smp-sql | SQL (MySQL/PostgreSQL/Oracle/DB2) | https://hub.docker.com/r/phelger/phoss-smp-sql |
phelger/phoss-smp-mongodb | MongoDB | https://hub.docker.com/r/phelger/phoss-smp-mongodb |
tomcat:10.1-jdk21 and expose port 8080 internally.
The legacy
phelger/smp image contains old XML binary releases and SNAPSHOTs. Use the phoss-smp-xml image for current releases.Quick start
The fastest way to verify the image works:- XML
- SQL
- MongoDB
http://localhost:8888 in your browser after the container starts.
Production deployment
Create a configuration directory
Create a local directory to hold See Prerequisites for keystore requirements.
application.properties and your keystore file:Create a data directory
The XML backend stores participant data on disk. Create a persistent directory:Set
webapp.datapath = /data in your application.properties to match the mount point inside the container.Run the container with volumes
Mount both directories and pass the config file path:
- XML
- SQL
- MongoDB
Environment variables
You can pass configuration via environment variables on thedocker run command line instead of mounting a config file.
| Variable | Description |
|---|---|
CONFIG_FILE | Absolute path to application.properties inside the container (v6.x+). |
WEBAPP_DATAPATH | Override webapp.datapath — the data storage directory. |
SML_SMPID | Override sml.smpid — your SMP identifier. |
SMP_BACKEND | Override smp.backend — set to xml, sql, or mongodb. |
Custom configuration with a child Dockerfile
If you prefer to bake configuration into a custom image, create a child Dockerfile that inherits from the official image:/config mount point, update the paths in your application.properties accordingly (for example, smp.keystore.path).
Port mapping
All official images expose port 8080 (Tomcat’s default HTTP port). The-p flag maps container port 8080 to a host port:
/usr/local/tomcat/logs inside the container. There is no single catalina.out; the file is rotated daily as catalina.out.yyyy-mm-dd.