Skip to main content
Version: Release 24.3

Docker Images for Release

This topic explains the Docker images available for Digital.ai Release.

The following Docker images are available:

  • Redhat
  • Redhat-slim
  • Ubuntu
  • Ubuntu-slim

For a detailed list of image versions and supported operating systems, refer to the Docker Hub repository.

note

For production deployments, it is advised to use Kubernetes to orchestrate the deployment of the applications. Docker Compose is not ideal for production setups. Proceed at your own risk.

Requirements and prerequisites

To run the Docker image for Digital.ai Release, you must have:

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 (repository, configuration, plugins) is stored outside the container. This is required to maintain the container life cycle (for example: during updates and to perform proper backups).

You can do this in Docker containers by specifying volume mount points. These are links that allow a file system directory outside the container to be used inside the container.

note

Create the folders referenced in the docker run command on your machine for the volume mapping before running the command. See Release Setup for Production Using Persistent Volumes.

Set Environment Variables

To change the default setup procedure that runs when a fresh installation is detected, the Release image exposes the following environment variables:

  • ADMIN_PASSWORD: Sets the admin password for a new installation. If this environment variable is not set, a random admin password is generated and printed to the console of the container.
  • REPOSITORY_KEYSTORE_PASSPHRASE: Sets the passphrase of the repository encryption key for a new installation. If this environment variable is not set, a random passphrase is generated and printed to the console of the container.

Ports Exposed

The Release image exposes port 5516 over which the Release user interface and REST API are served.

Set Volumes as Mount Points

The Release image exposes the following directories as mount points:

  • /opt/xebialabs/xl-release-server/archive
  • /opt/xebialabs/xl-release-server/conf
  • /opt/xebialabs/xl-release-server/ext
  • /opt/xebialabs/xl-release-server/hotfix
  • /opt/xebialabs/xl-release-server/plugins
  • /opt/xebialabs/xl-release-server/repository
  • /opt/xebialabs/xl-release-server/reports

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

Configuration Directory (conf)

The /opt/xebialabs/xl-release-server/conf folder on the image is empty. The first time the container is started, the content of the /opt/xebialabs/xl-release-server/default-conf directory is copied into the conf directory. The files in the default-conf are similar to the files in a regular Release installation ZIP. except that they have been tweaked for Release running in a container.

If a volume is provided for the /opt/xebialabs/xl-release-server/conf mount point, the configuration (including the admin password and the product license) 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. This allows you to set configurations like the logback.xml ahead of time.

The /opt/xebialabs/xl-release-server/conf folder on the image is empty. The first time the container is started, the content of the /opt/xebialabs/xl-release-server/default-conf directory is copied into the conf directory. The files in the default-conf directory are similar to those in a regular Release installation ZIP, except that they have been tweaked for Release running in a container.

Plugins Directory (plugins)

The /opt/xebialabs/xl-release-server/plugins folder on the image is empty. The first time that the container is started, the content of the /opt/xebialabs/xl-release-server/default-plugins directory is copied into the plugins directory.

If a plugin is already present in a volume mounted on the plugins mount point, it is not overwritten. This behavior also identifies different versions of the same plugin.

If you provide a volume for the /opt/xebialabs/xl-release-server/plugins directory, you can use it to pre-select specific plugins before startup. You must upgrade the plugins manually, see Upgrade scenarios Release for more information for your specific upgrade scenario.

Data Directories (repository and archive)

In the default setup, the embedded H2 and Derby databases are used to persist the repository and archive data, respectively. These databases are stored in the /opt/xebialabs/xl-release-server/repository and /opt/xebialabs/xl-release-server/archive directories. Provide mount points for these volumes to ensure that the data is preserved across container runs. To set up an external database server, refer to the documentation for Release.

Audit report directories (reports)

All Release instances should see same the content in this volume. In a cluster setup, ensure that this volume is mounted to a filesystem and is shared across all Release instances.

Customizations and hotfixes directories (ext and hotfix)

The /opt/xebialabs/xl-release-server/ext and /opt/xebialabs/xl-release-server/hotfix volumes are provided to allow customizations for custom tasks and to install hotfixes.

Persistent Configuration Example

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

For example, the following command starts a Release container with persistent configuration and storage:

        $ docker run -d -p 5516:5516 \
-v ${HOME}/XebiaLabs/xl-release-docker/conf:/opt/xebialabs/xl-release-server/conf:rw \
-v ${HOME}/XebiaLabs/xl-release-docker/repository:/opt/xebialabs/xl-release-server/repository:rw \
-v ${HOME}/XebiaLabs/xl-release-docker/archive:/opt/xebialabs/xl-release-server/archive:rw \
-v ${HOME}/XebiaLabs/xl-release-docker/reports:/opt/xebialabs/xl-release-server/reports:rw \
--name xlr xebialabs/xl-release:24.3.0
note

Before starting the containers, save the license file in the local conf directory: <USER_HOME>/XebiaLabs/xl-release-docker/conf/xl-release-license.lic