Creating a customized docker image
To create your own custom UM docker image, you need to Install Kickstarter first.
Next, do all the customizing you want in cmsbs-conf/
and /env/devel/cmsbs-conf/
.
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 -p 8080:8080 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.
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.
Recreate and run docker image using the freshly create database:
gradle dockerimage docker run --rm -p 8080:8080 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 = "secret"
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
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/
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!)