OSIAM Docker Image
This project builds a docker image with OSIAM installed and configured ready to
use for development purposes. WARNING: This image is for development purposes
only! Do not even think about using it in a production-like environment!
- includes OSIAM, addon-self-administration,
- full postgres database already installed
- default sample data included
- running greenmail fake mail server to provide fully functional addons
- a few dev tools are included for convenience: maven, git, less, vim,
openjdk7-jdk, curl, unzip
Use the image
$ docker run -i -t -p 8080:8080 -p 5432:5432 -p 10110:10110 osiamorg/osiam:3.0
or in daemon mode with:
$ docker run -d -p 8080:8080 -p 5432:5432 -p 10110:10110 osiamorg/osiam:3.0
This will bind ports 8080 (tomcat), 5432 (postgres) and 10110 (greenmail) on
the docker host.
Access database with
access OSIAM with
See the documentation
on what to do next.
Accessing the Logs
You can find the log files in the container file system:
The cryptic suffix is, of course, a random string, so the files have other names in your container.
You can also start Tomcat in debugging mode.
DEBUG environment variable to any value and expose the default debugging port
For example, add this to the
-e "DEBUG=true" -p 8000:8000
You can now attach a debugger to
localhost:8000 and debug the OSIAM services.
The build process will checkout the OSIAM sources from GitHub and then build the
WARs and configure Tomcat appropriately. The file
build.conf contains the
configuration of the repos and refs used to checkout the OSIAM sources. You can
build the image with:
You can add arbitrary options, that are known to
docker build, to this command
$ ./build --no-cache
You do not need to change anything if you like to send e-mails via the
self-administration or administration. You can get the e-mails on the exposed
pop3 port 10110. This is helpful if you like to register a user and want to
activate him with the generated link which is sent with the e-mail. Here is an
example how to get e-mails with telnet:
Login to the greenmail server via telnet on your locale machine
$ telnet localhost 10110
Use the e-mail address of the user
USER e-mail address e.g. email@example.com PASS e-mail address e.g. firstname.lastname@example.org
List all messages
Show message with ID 1
Use with docker-machine
This container will only work with docker-machine (or boot2docker) when
forwarding the port of the tomcat that is running inside the docker container.
This solution is actually usable for any other set-up where the container is
not running on the host system directly. The trick is to forward the tomcat
port via ssh tunnel to the host
$ docker-machine ssh default -L 8080:localhost:8080
This example assumes that there is a docker machine called
default. If you
want to use this with a VM, just use the ssh command and change
the remote host/ip.
Stuff that does not work (TODOs)
- setting db password and other security stuff on run
- convenient retrieval of server logs
- persisting data in external bind-mounted volume
- externalizing configuration in external bind-mounted volume
- making image suitable for production deployment