##What is Crowd
Single sign-on application from Atlassian.
docker run -p 8095:8095 -d codearte/atlassian-crowd
For production usage to preserve application home directory you should point proper volume to directory on host instance. To preserve permission you must have user with uid=2000 and gid=2000 on your host. In the following we assume that /home/atlassian is your host directory. Of course you can change it anything else
groupadd -g 2000 atlassian useradd -d /home/atlassian -m -g 2000 -u 2000 atlassian
Then we have to create directory for application host and add proper SELinux policy
mkdir /home/atlassian/crowd-home chcon -Rt svirt_sandbox_file_t /home/atlassian/crowd-home
After such setup you can create your container:
docker run -p 8095:8095 -v /home/atlassian/crowd-home:/home/crowd/crowd-home --name crowd codearte/atlassian-crowd
Then to run your container you just invoke
docker start crowd
and to stop
docker stop crowd
###External database container
It possible to use Crowd with embedded database but it's not recommended for production usage. Of course we can use Docker to manage for example Postgres database.
docker run --name crowd-pgsql -e POSTGRES_PASSWORD=mysecretpassword -v /home/atlassian/crowd-pgsql:/var/lib/postgresql/data -d postgres
Now we can link application with database container using below command:
docker run -p 8095:8095 -v /home/atlassian/crowd-home:/home/crowd/crowd-home --name crowd --link crowd-pgsql:db codearte/atlassian-crowd
The database is accessible in the application container with following properties:
url = jdbc:postgresql://db:5432/postgres user = postgres pass = mysecretpassword
This is very nice, but has one problem. If you start it and configure as Eval- that is, license, embedded db, setup admin credentials and then when you return to the login screen you _cannotlogin - due to the use of the IP address in crowd.properties file.
You need to attach to the running docker instance with a shell, ie.
$ docker exec -i -t backstabbing_ardinghelli /bin/bash
[crowd@246071230f7f ~]$ vi crowd-home/crowd.properties
And change the URL in crowd.server.url from the IP address of the Docker host to 'localhost.'
Then run stop_crowd.sh and then start_crowd.sh from your shell and then you can login.