Skip to main content

Docker Compose

Deployment with Docker Compose​

With Docker Compose you can deploy, orchestrate and scale TimeBase.

  1. Install Docker
  2. Install Docker Compose
  3. Copy and create docker-compose.yml as defined below
  4. Run docker-compose up -d
# docker-compose.yml Community Edition example

version: "3"
services:
timebase:
image: "finos/timebase-ce-server:6.2"
stop_grace_period: 5m
ulimits:
nofile:
soft: 65536
hard: 65536
environment:
- JAVA_OPTS=
-Xms8g
-Xmx8g
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/timebase-home/timebase.hprof
-Xlog:gc=debug:file=/timebase-home/GClog-TimeBase.log:time,uptime,level,tags:filecount=5,filesize=100m
ports:
- 8011:8011
- 8021:8021
volumes:
- "./timebase-home:/timebase-home"

timebase-admin:
image: "epam/timebase-ws-server:1.2"
environment:
- JAVA_OPTS=
-Xmx1g
-Dserver.port=8099
-Dtimebase.url=dxtick://timebase:8011
-Dserver.compression.enabled=true
-Dserver.compression.mime-types=text/html,text/css,application/javascript,application/json
ports:
- 8099:8099
depends_on:
- timebase

Configuration​

You can configure TimeBase via Java system properties and in admin.properties configuration file.

Java system properties​

You can configure TimeBase by passing Java environment variable as JAVA_OPTS in docker-compose file:

# Example
environment:
- TIMEBASE_SERIAL=${SERIAL_NUMBER} # for Enterprise Edition
- JAVA_OPTS=
-Xms8g
-Xmx8g
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/timebase-home/timebase.hprof

admin.properties​

You can configure selected TimeBase properties in admin.properties configuration file and place it in timebase-home\config\ folder. In docker-compose.yml, mount this folder to use admin.properties configurations.

# Example
volumes:
- "./timebase-home:/timebase-home"

In admin.properties you can configure host, port, version, and other TimeBase parameters.

Example
# Example of admin.properties file
TimeBase.host=localhost
TimeBase.port=8011
TimeBase.version=5.0
TimeBase.enableRemoteAccess=true

Refer to enable SSL to learn how to enable SSL in admin.properties file.

TimeBase Deployment with SSL​

Here are basic (minimal) instructions for TimeBase deployment with SSL

Docker Compose​

Configure docker-compose.yml file.

# docker-compose.yml Community Edition example

version: "3"
services:
timebase:
image: "finos/timebase-ce-server:6.2"
stop_grace_period: 5m
ulimits:
nofile:
soft: 65536
hard: 65536
environment:
- JAVA_OPTS=
-Xms8g
-Xmx8g
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/timebase-home/timebase.hprof
-Xlog:gc=debug:file=/timebase-home/GClog-TimeBase.log:time,uptime,level,tags:filecount=5,filesize=100m
ports:
- 8011:8011 //TimeBase Server port
- 8022:8022 //SSL port
volumes:
- "./timebase-home:/timebase-home"

timebase-admin:
image: "epam/timebase-ws-server:1.2"
environment:
- JAVA_OPTS=
-Xmx1g
-Dserver.port=8099
-Dtimebase.url=dxtick://timebase:8011
-Dserver.compression.enabled=true
-Dserver.compression.mime-types=text/html,text/css,application/javascript,application/json
ports:
- 8099:8099
depends_on:
- timebase
info

Refer to Enable SSL for additional information.

admin.properties​

In admin.properties configuration file specify the following parameters to enable SSL:

TimeBase.sslInfo=QSKeystoreInfo
TimeBase.sslInfo.keystoreFile=test.jks //security certificate file
TimeBase.sslInfo.keystorePass=<password>
TimeBase.enableSSL=true //enable SSL
TimeBase.sslInfo.sslPort=8022 //SSL port same as in docker-compose
TimeBase.sslInfo.sslForLoopback=false

Create a JKS file in case you use a self-signed certificate. Specify JKS file name for keystoreFile and a password for keystorePass.

info

Refer to Enable SSL for additional information.

TimeBase Deployment with UAC​

In admin.properties configuration file specify the following parameters to enable UAC:

QuantServer.security.rulesConfig=uac-access-rules.xml //users authorization information
QuantServer.security.userDirectoryConfig=uac-file-security.xml //users authentication information
QuantServer.security=FILE
info

Refer to User Access Control for additional information.

Useful Commands​

  • docker-compose images - show you component versions.
  • docker-compose logs CONTAINER_NAME - display log output from service.
  • Use docker compose logs -f CONTAINER_NAME to follow log output.