Docker Images for Central Configuration

After installing the Deploy solution, you can run the Central Configuration as a standalone service using Docker container or persistent Docker volumes. For more information, see Central Configuration as a Standalone Service.

The available Docker image for Central Configuration:

Requirements and Prerequisites

To run the Docker image for Central Configuration you must have:

  • Docker version 18.03.1-ce installed

Hosting Environment Support

Private Cloud

  • Physical servers
  • Virtual machines vSphere

Public Cloud

Docker Environment Support

  • Docker engine - Community (Linux/Windows)
  • Docker Enterprise Edition (Linux/Windows Server)

Persistent Configuration Setup

To use the software in optimal conditions, you must make sure that all the data is stored outside the container. This is required to maintain the container life cycle. Example: This is required during updates and to perform proper back up.

You can set up persistent configuration in Docker containers by specifying volume mount points. With these links, a file system directory outside the container can be used inside the container.

Ports Exposed

The Central Configuration image exposes port 8888 over which the configuration for various profiles are served to the clients(Deploy Mastersand Deploy Workers). The management console for the Central Configuration is exposed on the same port.

Set Volumes as Mount Points

The Central Configuration image exposes the following directories as mount points:

  • /opt/xebialabs/central-configuration-server/conf
  • /opt/xebialabs/central-configuration-server/centralConfiguration

Providing volumes for these mount points is optional and guarantees persistence across container runs. The sections below describe how the mount points are handled.

Note: The folders you mount, must be owned by user 10001. For example, if you want to mount directories under ~/XebiaLabs/ folder, to change the ownership, run the command sudo chown -R 10001 ~/XebiaLabs/ .

Configuration Directory (conf)

The /opt/xebialabs/central-configuration-server/conf folder on the image is empty. The first time the container is started, the content of the /opt/xebialabs/central-configuration-server/default-conf directory is copied into the conf directory. Below are the files in the default-conf directory.

  • deployit.conf
  • jmx-exporter.yaml
  • logback.xml
  • logback-access.xml
  • wrapper-daemon.vm
  • xlc-wrapper.conf.common
  • xlc-wrapper.conf.posix

If a volume is provided for the /opt/xebialabs/central-configuration-server/conf mount point, the configuration is persisted across all container runs. If any files are present on the volume the first time that the container starts, they will not be overwritten by the files from the default-conf directory. You can use this to set configurations like the logback.xml, ahead of time.

If you specify a file called deployit.conf in the conf folder that is mounted, you must provide the relevant values for the attributes in your file as shown below:


where the attributes:

  • http.port—denotes the port on which the Central Configuration runs
  •—denotes the encryption key that is used to encrypt or decrypt the sensitive data of the central configuration files (configuration files in the centralConfiguration directory). This value must be the same for the Deploy Masters and Central Configuration.

Central Configuration directory (centralConfiguration)

The /opt/xebialabs/central-configuration-server/centralConfiguration directory on the image includes the configuration files that is served to the clients of the Central Configuration. This directory contains the configuration files in .yaml format with file names, such as <product>-<profile>.yaml. For example, the file deploy-server.yaml denotes a file for the Deploy product with the Server profile.

For more information, see Central Configuration as a Standalone Service.

Persistent Configuration Example

The mount points are passed to the Docker command using the -v parameter.

To start the Central Configuration container with persistent configuration and storage, run:

$ docker run -d -p 8888:8888 \
-v ${HOME}/XebiaLabs/central-configuration/conf:/opt/xebialabs/central-configuration-server/conf:rw \
-v ${HOME}/XebiaLabs/central-configuration/repository:/opt/xebialabs/central-configuration-server/centralConfiguration:rw \
--name central-configuration xebialabs/central-configuration:10.3