Installing CellStore with Docker, Part 3: Creating CellStore container
Estimated reading time: 4 minutesThese instructions are meant for the first installation only of CellStore. For updates, refer to the update instruction.
- 1: Docker
- 2: Database
- 3: Creating CellStore container
- 4: Starting CellStore
- 5: Creating CellStore service
- 6: Setup DTS cache
- 7: Additional Configuration and Optimization
CellStore is usually distributed as a compressed archive or through Reportix’ private Docker registry.
Loading CellStore image
The first step of the installation is loading CellStore image to your docker host.
If installing from a compressed archive:
gunzip -c cellstore-vNEXT.gz | docker load
If installing from Reportix’ private Docker registry please request access to the Reportix Support. Once you have done so run:
docker login registry.reportix.com -u username
docker pull registry.reportix.com/cellstore/cellstore:vNEXT
Configure CellStore
CellStore configuration, license, log and cache files are stored in CellStore home folder, denoted %CELLSTORE_HOME% in what follows. This folder can be located anywhere on your computer, as long as it can be read and written by the docker container.
Initializing CellStore home directory
First, we need to create the folder on our host machine and place the license file received from the Reportix support in it. Then, we can generate the default configuration files into the folder.
mkdir -p %CELLSTORE_HOME%
cp license.lic %CELLSTORE_HOME%
docker run --rm -it registry.reportix.com/cellstore/cellstore:vNEXT -v "%CELLSTORE_HOME%:/root/cellstore" init-cellstore-home
For instance, if we place the %CELLSTORE_HOME% in /var/reportix/cellstore:
mkdir -p /var/reportix/cellstore
cp license.lic /var/reportix/cellstore
docker run --rm -it registry.reportix.com/cellstore/cellstore:vNEXT -v "/var/reportix/cellstore:/root/cellstore" init-cellstore-home
This last command will generate two configuration files in the %CELLSTORE_HOME%, log4j2.xml containing the log settings and reportix.properties containing CellStore settings.
If the
log4j2.xmlorreportix.propertiesfiles already exists, they will not be overwritten.
Database Configuration
To be able to start CellStore, we need to configure the database credentials in reportix.properties before proceeding.
To do so you need to replace the values of the following fields with the correct values for your configuration.
localhost, 127.0.0.1, or equivalent don’t work
If you are running CellStore on the same host machine as your MongoDB or MarkLogic database server, via a Docker container or natively, you might be tempted to write
localhost,127.0.0.1,::1or an equivalent address in theMONGO_SERVERorMARKLOGIC_SERVERfield. Neither of these values will work, as they will all refer to CellStore docker container itself and not to its host. You need to either setup the Docker container networking or usedockerhostas address to denote the Docker container host machine.
Configuration for MongoDB
In order to use MongoDB as the database engine you need to configure:
DB_LAYER=MONGO
MONGO_SERVER=dockerhost
MONGO_PORT=27017
MONGO_DB=myDB
MONGO_USER=myUser
MONGO_PASS=123456
MONGO_SSL=false
If the MongoDB server is running with authentication disabled, you can leave the MONGO_USER and MONGO_PASS values empty.
MONGO_SSL can be either false or true.
It is not necessary to create a database in MongoDB beforehand if the user has the rights to do so.
Configuration for Elasticsearch
Note: You need to purchase the Elasticsearch Connector license to be able to use Elasticsearch.
In order to use Elasticsearch for full-text search of facts, footnotes, or labels (tables, dimensions, entities, etc.):
ELASTIC_SEARCH_SERVERS=localhost:9200,192.178.168.27:9201
# index names
ELASTIC_SEARCH_INDEX_LABELS=cellstore-labels
ELASTIC_SEARCH_INDEX_FACTS=cellstore-facts
ELASTIC_SEARCH_INDEX_FOOTNOTES=cellstore-footnotes
# configure custom analyzers for specific languages (OPTIONAL)
# ELASTIC_SEARCH_LANGUAGE_JA=kuromoji
Configuration for MarkLogic
Note: You need to purchase the MarkLogic Connector license to be able to use MarkLogic.
In order to use MarkLogic as database engine you need to configure:
DB_LAYER=MARKLOGIC
MARKLOGIC_SERVER=marklogic.host.example.com
MARKLOGIC_PORT=8010
MARKLOGIC_DB=reportix-cellstore-1
MARKLOGIC_USER=myUser
MARKLOGIC_PASS=123456
MARKLOGIC_VERSION=10
MARKLOGIC_DIRECTORIES_URI_PREFIX=/my/own/prefix
In MarkLogic the “default (and maximum) transaction time limit is the request time limit configured for the server that creates the transaction” (see MarkLogic Documentation). If e.g. an instance import takes longer than the transaction limit the import will fail. In this case the server limit needs to be increased. Also make sure to set the correct version of your MarkLogic installation which might be only ‘9’ or ‘10’ for MarkLogic versions 9 or 10 at this moment.
To not interfere with any existing data in the MarkLogic Database you can define a prefix for the created
directories by defining MARKLOGIC_DIRECTORIES_URI_PREFIX=/prefix.
All directory URIs will then be prefixed with /prefix.
Validate configuration
Once you have finished writing the database configuration, you can test the whole CellStore configuration and license.
docker run --rm -it registry.reportix.com/cellstore/cellstore:vNEXT -v "%CELLSTORE_HOME%:/root/cellstore" check-configuration
For instance, if we place the %CELLSTORE_HOME% in /var/reportix/cellstore:
docker run --rm -it registry.reportix.com/cellstore/cellstore:vNEXT -v "/var/reportix/cellstore:/root/cellstore" check-configuration
This command will validate both the database credentials and the installed license. When no errors are reported proceed to the next part.
cellstore, install, installation, documentation, container, image