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 have a dockerized application infrastructure
To develop CSE based applications in a local UM instance
Info |
---|
This section describes how you can create a customized UM Docker image. We do not provide pre-built docker images because
|
Creating a customized docker image
To create your own custom UM docker image, you need to install UM Kickstarter following Install Kickstarter, first.
Next, do all the customizing you want in cmsbs-conf/
and /create a new project:
Codeblock | ||
---|---|---|
| ||
umkickstarter my-um-project
cd my-um-project |
Next, copy your personal license file to env/devel/cmsbs-conf/cmsbs.license
.
You are now ready to create your custom UM docker image:
Codeblock | ||
---|---|---|
| ||
gradle dockerimage -Penv=devel |
Running a UM from a custom docker image
Start your dockerized UM:
Codeblock | ||
---|---|---|
| ||
docker run --rm -p 8080:8080 --network host \ -e UM_ADMIN_USERNAME=admin -e UM_ADMIN_PASSWORD=admin \ myproject:devel |
Go to http://localhost:8080/cmsbs and login as admin
/ admin
.
...
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 statement 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:
Codeblock | ||
---|---|---|
| ||
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 create created database:
Codeblock |
---|
gradle dockerimage -Penv=devel docker run --rm -p 8080:8080-network host \ -e 'UM_ADMIN_USERNAME=admin' -e 'UM_ADMIN_PASSWORD=admin' \ myproject:devel |
The UM instance running on http://localhost:8080/cmsbs should now populate and use the new database.
...
The following represents a subset of the supported databases for which there are easy to use docker images available on docker hub:.
Each subsection contains a docker run command to start the according database listening on its respective standard TCP port and a docker run command to start a UM instance using that very database.
Postgres 12.3
Run Postgres on localhost:5432
:
...
Codeblock |
---|
cmsbs.database.url = "jdbc:postgresql://localhost:5432/" cmsbs.database.user = "postgres" cmsbs.database.password = "secret"mysecretpassword" |
Alternatively, inject database settings via environment variables:
Codeblock | ||
---|---|---|
| ||
docker run --rm --network host \
-e 'UM_ADMIN_USERNAME=admin' -e 'UM_ADMIN_PASSWORD=admin' \
-e 'cmsbs.database.url=jdbc:postgresql://localhost:5432/' \
-e 'cmsbs.database.user=postgres' \
-e 'cmsbs.database.password=mysecretpassword' \
myproject:devel |
JDBC Driver: https://jdbc.postgresql.org/download.html
MySQL 8.0
Run MySQL on localhost:3306
:
Codeblock |
---|
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:
Codeblock |
---|
cmsbs.database.url = "jdbc:mysql://localhost:3306/um?allowPublicKeyRetrieval=true" cmsbs.database.user = "root" cmsbs.database.password = "secret" cmsbs.database.mysql.Unicode = true |
Alternatively, inject database settings via environment variables:
Codeblock | ||
---|---|---|
| ||
docker run --rm --network host \
-e 'UM_ADMIN_USERNAME=admin' -e 'UM_ADMIN_PASSWORD=admin' \
-e 'cmsbs.database.url=jdbc:mysql://localhost:3306/um?allowPublicKeyRetrieval=true' \
-e 'cmsbs.database.user=root' \
-e 'cmsbs.database.password=secret' \
myproject:devel |
JDBC Driver: https://dev.mysql.com/downloads/connector/j/
MariaDB 10
Run MariaDB on localhost:3306
:
Codeblock |
---|
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:
Codeblock |
---|
cmsbs.database.url = "jdbc:mysql://localhost:3306/um?allowPublicKeyRetrieval=true"
cmsbs.database.user = "um"
cmsbs.database.password = "secret"
cmsbs.database.mysql.Unicode = true |
Alternatively, inject database settings via environment variables:
Codeblock | ||
---|---|---|
| ||
docker run --rm --network host \
-e 'UM_ADMIN_USERNAME=admin' -e 'UM_ADMIN_PASSWORD=admin' \
-e 'cmsbs.database.url=jdbc:mysql://localhost:3306/um?allowPublicKeyRetrieval=true' \
-e 'cmsbs.database.user=um' \
-e 'cmsbs.database.password=secret' \
myproject:devel |
JDBC Driver: https://dev.mysql.com/downloads/connector/j/
MSSQL
...
2022
Run MSSQL on localhost:1433
:
Codeblock |
---|
docker run \ -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=S3cre7pw' -e 'MSSQL_PID=Express' \ -p 1433:1433 \ --name mssql2017 \ mcr.microsoft.com/mssql/server:20172022-latest-ubuntu |
UM configuration:
Codeblock |
---|
cmsbs.database.url = "jdbc:sqlserver://localhost:1433;trustServerCertificate=true"
cmsbs.database.user = "sa"
cmsbs.database.password = "S3cre7pw"
cmsbs.database.mssql.Unicode = true |
Alternatively, inject database settings via environment variables:
Codeblock | ||
---|---|---|
| ||
docker run --rm --network host \
-e 'UM_ADMIN_USERNAME=admin' -e 'UM_ADMIN_PASSWORD=admin' \
-e 'cmsbs.database.url=jdbc:sqlserver://localhost:1433;trustServerCertificate=true' \
-e 'cmsbs.database.user=sa' \
-e 'cmsbs.database.password=S3cre7pw' \
myproject:devel |
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
:
...
Codeblock |
---|
cmsbs.database.url = "jdbc:oracle:thin:@localhost:1521:xe" cmsbs.database.user = "system" cmsbs.database.password = "oracle" |
Alternatively, inject database settings via environment variables:
Codeblock | ||
---|---|---|
| ||
docker run --rm --network host \
-e 'UM_ADMIN_USERNAME=admin' -e 'UM_ADMIN_PASSWORD=admin' \
-e 'cmsbs.database.url=jdbc:oracle:thin:@localhost:1521:xe' \
-e 'cmsbs.database.user=system' \
-e 'cmsbs.database.password=oracle' \
myproject:devel |
JDBC Driver: https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html (Oracle account required!)
DB2 11
Run DB2 on localhost:50000
:
Codeblock |
---|
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:
Codeblock |
---|
cmsbs.database.url = "jdbc:db2://localhost:50000/um"
cmsbs.database.user = "db2inst1"
cmsbs.database.password = "secret" |