Using HCL Compass RESTful and search features in the same Docker Compose service
This quick start guide shows you how to use Docker Compose to setup and run an HCL Compass with RESTful and search features in the same Docker Compose service.
Before you begin
Note: Using HCL Compass on Docker and Docker Compose is
not supported when deployed in a production environment. To use HCL Compass in a container in a production
environment, deploy HCL Compass to a
Kubernetes environment.
Before you can
use HCL Compass RESTful services with
search features in the same Docker Compose service, you must first:For more information, see Deploying HCL Compass on SoFy Sandbox.
- Define the RESTful services.
- Define environment files.
- Define the services in a docker-compose.yaml file.
These steps are detailed as steps 1-3 in Getting Started with Docker Compose.
Note:- Each Search configuration requires approximately 5 GB of memory. Ensure that your system has enough memory before configuring Seach with HCL Compass.
- The Docker compose example in this document includes a two database schema connection and two search configurations. You will need at least 12 GB of memory to deploy this configuration.
About this task
Procedure
-
Create an environment file for the Search feature environment variables.
- Create an environment file named search.env in your project
directory and paste your username, user password, and user database name into the
file:
SEARCH_CONFIG_SET=[("SEARCH_CONFIG_1" "SEARCH_CONFIG_2" ..... "SEARCH_CONFIG_n")]
Each Search configuration must be set with the following format:-username [Username] -password [User password] -dbset [dbset_name] -userdb [User database] -searchPort [search_port_number]
The following example illustrates the proper configuration for a two Search configuration. In this case, one is for DefectTracking-SAMPL and the other is for EssentialSAFe-SAMPL applications:SEARCH_CONFIG_SET=(" -username admin -password "" -dbset DefectTracking -userdb SAMPL -searchPort 8983" "-username admin -password "" -dbset EssentialSAFe -userdb SAMPL -searchPort 8984")
Note: Valid parameters for the seach.env file include:SEARCH_ENABLED
: You can set the search configuration to enabled by setting toTRUE
. Setting this value toFALSE
disables the search configuration.USER_NAME
: The user name that is used to login to the user database. The user must have the role of admin.USER_PASSWORD
: The password for the login to the user database.USER_DB
: The user database name.
If you need to update the default full text search properties values, you must add the SEARCH_PROPERTIES_VALUE_SET environment variable in the search.env file and set your new properties values for search1.SEARCH_PROPERTIES_VALUE_SET=("-IndexWorkspace <true/false> -MaxHeapSize <val> -RetryAttempts <val> -RetryAttemptsPause <val> -IncrIndexMaxHe apSize <val> -FullIndexMaxHeapSize <val> -ProcRetryAttempts <val> -ProcRetryAttemptsPause <val>")
- Create an environment file named search.env in your project
directory and paste your username, user password, and user database name into the
file:
-
Define the service in a Docker compose file.
- Create a YAML file named docker-compose-search-model1.yaml in
your project directory as shown below.
version: '3' services: hcl-compass: env_file: - search.env # environment variables file for the search. ports: - 8983:8983 # search port - 8994:8984 # search port volumes: - your_project_directory:/opt/hcl/compass/compass-rest-server-distribution/data/search
The docker-compose-model1.yaml file updates the
hcl-compass
service as follows:- Sets environment variables defined in the search.envfile.
- Binds the container and the host machine to the exposed ports 8983 and 8984 that you defined in the searchPort variable in the db.env file for two DefectTracking-SAMPL and EssentialSAFe-SAMPL applications.
- Creates volume mountpoint folder location for search files.
- Create a YAML file named docker-compose-search-model1.yaml in
your project directory as shown below.
-
Build and run the HCL Compass
application with Docker Compose
- From your project directory, start your application by running the following
command:
$ docker-compose -f docker-compose.yaml -f docker-compose-search-model1.yaml up -d Creating network "compass_hcl-compass" with driver "bridge" Creating volume "compass_hcl-compass-logs" with default driver Creating volume "compass_hcl-compass-config" with default driver Creating compass_hcl-compass_1 ... done
Docker Compose pulls and builds the HCL Compass RESTful service and starts the
hcl-compass
service. - After the command has been launched, you can check to see that the service and the
container are started by using the following
command:
$ docker-compose --f docker-compose.yaml -f docker-compose-search-model1.yaml ps
- Optionally, you can view the container logs by using the following
command:
$ docker-compose -f docker-compose.yaml -f docker-compose-search-model1.yaml logs
- Enter
http://localhost:8190/
in a browser to see the HCL Compass application running.
- From your project directory, start your application by running the following
command: