Docker Images for Central Configuration
This topic provides instructions for running the Digital.ai Deploy 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:
- A regular image based on Debian (slim) Linux flavor of the OpenJDK base image
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
- Amazon Elastic Container Services (ECS):
- Amazon ECS with EC2 via AWS Quick Start
- AWS AMI via the AMI marketplace
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 commandsudo 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
logging.properties
wrapper-daemon.vm
xlc-wrapper.conf.common
xlc-wrapper.conf.win
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:
http.port=8888
xl.spring.cloud.encrypt.key=changeme
where the attributes:
http.port
—denotes the port on which the Central Configuration runsxl.spring.cloud.encrypt.key
—denotes the encryption key that is used to encrypt or decrypt the sensitive data of the central configuration files (configuration files in thecentralConfiguration
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