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, addon-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
Run with:
$ 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
osiam:osiam
access OSIAM with
admin:koala
See the documentation on what to do next.
You can find the log files in the container file system:
/var/log/supervisor/tomcat8-stderr---supervisor-EQxqwo.log
/var/log/supervisor/tomcat8-stdout---supervisor-Vcz9Yi.log
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.
Set the DEBUG
environment variable to any value and expose the default debugging port 8000
.
For example, add this to the run
command:
-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:
$ ./build
You can add arbitrary options, that are known to docker build
, to this command
like:
$ ./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 protected]
PASS e-mail address e.g. [email protected]
List all messages
LIST
Show message with ID 1
RETR 1
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 default
to
the remote host/ip.
- 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