It is not always necessary to manually install the UM with the described installation method. In some cases it makes sense to run the UM in a docker container:
If you already have a dockerized application infrastructure
To develop CSE based applications in a local UM instance
Creating a customized docker image
To create your own custom UM docker image, install UM Kickstarter following Install Kickstarter, first.
Next, create a new project:
umkickstarter my-um-project cd my-um-project
Next, copy your personal license file to env/devel/cmsbs-conf/cmsbs.license
.
If you project does not have a Dockerfile, you can create it via:
gradle dockerize
You are now ready to create your custom UM docker image:
gradle dockerimage
Running a UM from a custom docker image
Start your dockerized UM:
docker run --rm --network host myproject:devel
Go to http://localhost:8080/cmsbs and login as admin
/ admin
.
The default for Kickstarter based UM installations is to use an embedded H2 database that stores its data in /UM/cmsbs-work/db.h2.*
inside the docker container’s volume. As this is fine for local development you probably want to use a ‘real’ database engine at some point in time.
Running a local ‘real’ database
There is quite a number of supported database engines to choose from (see Installation Requirements for a list of officially supported databases).
Select one of the database engines listed below and start an instance with the given docker run command.
Configure UM to use new database
Create a file env/devel/cmsbs-conf/conf.d/database.properties
below your Kickstarter directory and paste the given UM configuration snippet according to the database chosen.
Create the directory cmsbs/WEB-INF/lib/
below your Kickstarter directory and add the following line to your build.gradle
file:
pinuts.extraDist = [ 'cmsbs/WEB-INF/lib' ]
Download the appropriate JDBC driver and copy the JAR file to the directory cmsbs/WEB-INF/lib/
your just created.
Recreate and run docker image using the freshly created database:
gradle dockerimage docker run --rm --network host myproject:devel
The UM instance running on http://localhost:8080/cmsbs should now populate and use the new database.
Docker images for popular database engines
The following represents a subset of the supported databases for which there are easy to use docker images available on docker hub:
Postgres 12.3
Run Postgres on localhost:5432
:
docker run \ -e POSTGRES_PASSWORD=mysecretpassword \ -p 5432:5432 \ --name postgres \ postgres:12.3
UM configuration:
cmsbs.database.url = "jdbc:postgresql://localhost:5432/" cmsbs.database.user = "postgres" cmsbs.database.password = "mysecretpassword"
JDBC Driver: https://jdbc.postgresql.org/download.html
MySQL 8.0
Run MySQL on localhost:3306
:
docker run \ -e MYSQL_DATABASE=um -e MYSQL_ROOT_PASSWORD=secret \ -p 3306:3306 \ --name mysql \ mysql:8.0 \ --max-allowed-packet=256m
UM configuration:
cmsbs.database.url = "jdbc:mysql://localhost:3306/um?allowPublicKeyRetrieval=true" cmsbs.database.user = "root" cmsbs.database.password = "secret" cmsbs.database.mysql.Unicode = true
JDBC Driver: https://dev.mysql.com/downloads/connector/j/
MariaDB 10
Run MariaDB on localhost:3306
:
docker run \ -e MYSQL_DATABASE=um -e MYSQL_USER=um -e MYSQL_PASSWORD=secret \ -e MARIADB_RANDOM_ROOT_PASSWORD=true \ -p 3306:3306 \ --name mariadb \ mariadb:10 \ --max-allowed-packet=256m
UM configuration:
cmsbs.database.url = "jdbc:mysql://localhost:3306/um?allowPublicKeyRetrieval=true" cmsbs.database.user = "um" cmsbs.database.password = "secret" cmsbs.database.mysql.Unicode = true
JDBC Driver: https://dev.mysql.com/downloads/connector/j/
MSSQL 2017
Run MSSQL on localhost:1433
:
docker run \ -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=S3cre7pw' -e 'MSSQL_PID=Express' \ -p 1433:1433 \ --name mssql2017 \ mcr.microsoft.com/mssql/server:2017-latest-ubuntu
UM configuration:
cmsbs.database.url = "jdbc:sqlserver://localhost:1433" cmsbs.database.user = "sa" cmsbs.database.password = "S3cre7pw" cmsbs.database.mssql.Unicode = true
JDBC Driver: https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15
Oracle 11g
Run Oracle on localhost:1521
:
docker run \ -p 1521:1521 \ --name oracle-xe-11g \ oracleinanutshell/oracle-xe-11g:latest
UM configuration:
cmsbs.database.url = "jdbc:oracle:thin:@localhost:1521:xe" cmsbs.database.user = "system" cmsbs.database.password = "oracle"
JDBC Driver: https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html (Oracle account required!)
DB2 11
Run DB2 on localhost:50000
:
docker run \ -e LICENSE=accept -e DB2INST1_PASSWORD=secret -e DBNAME=um \ -p 50000:50000 \ --privileged --ipc=host \ --name db2 \ ibmcom/db2:11.5.7.0
UM configuration:
cmsbs.database.url = "jdbc:db2://localhost:50000/um" cmsbs.database.user = "db2inst1" cmsbs.database.password = "secret"