Skip to main content
Skip table of contents

Custom configuration

Docker Compose should only be used to deploy Hyperscale Compliance in an evaluation/testing capacity.

Introduction

This topic provides background information on performing custom configurations that are referenced throughout Hyperscale Compliance documentation.

Bind mounts

Configuration of Hyperscale Compliance is achieved through a combination of Configuration Settings and the use of Docker bind mounts. A bind mount is a directory or file on the host machine that will be mounted inside the container. Changes made to the files on the host machine will be reflected inside the container. It does not matter where the files live on the host machine, but the files must be mounted to specific locations inside the container so that the application can find them.

The Hyperscale Compliance and proxy containers can both be configured via separate bind-mounted directories. Each container requires all configuration files to be mounted to the relevant directory inside the container. Therefore, it is recommended to create a directory for each container on the host machine to store all of the configuration files and mount them to the relevant directory. This is done by editing the docker-compose.yaml.

Like, Under proxy services, add a volumes section if one does not already exist; this is used to mount the configuration directory on the host to /etc/config. For example, if /my/proxy/config is the directory on the host that contains the configuration files, then the relevant part of the compose file would look like this:

NONE
services:
    proxy:
        volumes:
            - /my/proxy/config:/etc/config

To change the configuration of the Hyperscale Compliance container, make a similar change under its service section, the only difference being the directory on the host. After making this change, the application will need to be stopped and restarted.

The structure of /my/proxy/config will need to match the required layout in /etc/config. When each container starts, it will create default versions of each file and place them in the expected location. It is highly recommended to start from the default version of these files. For example, if /my/proxy/config is the bind mount directory on the host, it could be populated with all the default configuration files by running the following commands.

First, create an nginx directory inside /my/proxy/config on the host.

NONE
cd /my/proxy/config
mkdir nginx

Find the id of the proxy container with docker ps. Look for the container with a delphix-hyperscale-masking-proxy image name. To determine the user and group ownership for any configuration files, start the containers and open a shell to the relevant one (nginx in this example), then examine the current user/group IDs associated with the files (where x.0.0 should be changed to the version of Hyperscale Compliance being installed).

NONE
docker ps

CONTAINER ID   IMAGE                             COMMAND                  CREATED         STATUS         PORTS                                   NAMES
802606779b9d   delphix-hyperscale-masking-proxy:dev   "/sbin/tini -- /boot…"   3 hours ago   Up 3 hours             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp                                                          hyperscale-masking_proxy_1

In the above example, 802606779b9d is the id. Run the following command to copy the default files to the bind mount.

NONE
docker cp <container id>:/etc/config/nginx /my/proxy/config/nginx

One can always go back to the original configuration by removing the bind-mount and restarting the container or using docker cp as in the previous example to overwrite the custom files with the default versions.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.