Skip to main content
Skip table of contents

Deployment upgrade for Docker Compose

Delphix has announced the depreciation of support for Docker Compose with DCT version 13.0.0. The January 2024 release starts a 12-month depreciation period for all supported versions on Docker Compose. All prior and current product versions will continue to be supported on Docker Compose until January 2025. However, production DCT workloads in Docker Compose are not supported. 

It is highly recommended that new DCT installations are performed on Kubernetes or OpenShift

DCT versions 2.0.0 through 6.0.2 running on Docker Compose, that are being upgraded to DCT 7.0.0 or later, may experience potential failure to start post-upgrade, resulting in a "permission denied" error in the logs. Operations post-upgrade may also fail with internal errors.

The issue is due to the UID running the application containers changing from UID 1000 (in DCT 2.0.0 through 6.0.2) to UID 1010 (in DCT 7.0.0 and later). Resolving the issues requires the following one-time change and no container restart is required:

  1. Change ownership of the volume associated to the gateway container to the new UID:
    docker exec -u 0  -it <gateway-container-name> chown delphix:delphix /data

  2. If bind mounts have been used to configure DCT, they must grant permission to the user with UID 1010 (GUID 1010) to read/write files, for example:
    chown 1010:1010 /path/to/nginx/bind/mount

Starting from DCT 12.0.0 we have introduced one new service (container) named masking.
Memory and CPU requirement for this new container is 512Mi and 500m respectively.

This container creates a new volume mount masking-data.
If you are using masking engines with self sign certificated and previously mounted the truststore to the gateway pod like:
volumes:

  • gateway-data:/data

  • /truststore/config/path/on/host:/etc/config/certs

Then please mount this old truststore to the masking service as well by keeping it in separate folder and uncomment below lined in docker-compose.yaml masking service section:

volumes:

  • masking-data:/data

  • /truststore/config/path/on/host:/etc/config/certs

Starting from DCT 15.0.0 we have introduced one new service (container) named virtualization-app.
Memory and CPU requirement for this new container is 512Mi and 600m respectively.

This container creates a new volume mount virtualization-app-data.
If you are using virtualization engines with self sign certificated and previously mounted the truststore to the gateway pod like:
volumes:

  • gateway-data:/data

  • /truststore/config/path/on/host:/etc/config/certs

Then please mount this old truststore to the virtualization-app service as well by keeping it in separate folder and uncomment below lined in docker-compose.yaml virtualization-app service section:

volumes:

  • virtualization-app-data:/data

  • /truststore/config/path/on/host:/etc/config/certs

Introduction

This article describes the procedure to upgrade the DCT version without losing any data. Docker Compose uses the concept of “project” to create unique identifiers for all of a project’s containers and other resources (like volumes, etc.). 

Get the current project name and note it down using the following command:

  • The volume name would be of the format {project-name}_gateway-data and {project-name}_gwdatabase-data. In the below example, the project name is delphix-dct.

NONE
docker volume ls
DRIVER    VOLUME NAME
local     delphix-dct_gateway-data
local     delphix-dct_gwdatabase-data
local     delphix-dct_masking-data
local     delphix-dct_virtualization-app-data

Bring down DCT services using the following command: 

NONE
docker compose down

Refer to the “Unpack and install DCT” section in the Installation and setup page for instructions on how to download and extract the new release tarball, then load Docker images. 

Navigate to the extracted directory which contains the docker-compose.yaml file. By default, Docker Compose uses the extracted folder name as project-name

Edit the docker-compose.yaml file. Changes made to the docker-compose.yaml prior to upgrade file must be applied to the newly extracted docker-compose.yaml file.

With that, either rename the extracted folder to match the project-name and run:

NONE
docker compose up -d

OR run the below command with the project-name noted above from step #1 above

NONE
docker compose -p <project-name> up -d

If the -p argument is used to deploy DCT services, then the corresponding command to bring down the DCT services would be:

CODE
docker compose -p <project-name> down
JavaScript errors detected

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

If this problem persists, please contact our support.