Docker-Related Changes in v41

Prev Next

In v41, we've made several changes to the system's use of Docker Engine and Docker Compose, including their minimum required versions.

For more information on system requirements, see Infrastructure Requirements.

Docker Engine

Beginning in v41, Hyperscience requires the use of Docker v25.0.4 or later. If the system detects an earlier version during the installation or upgrade process, the process will fail with the following error:

The detected system docker version does not match our minimum required Docker version

To learn how to install Docker, see Docker’s Install Docker Engine on Ubuntu.

Docker Compose

The changes described in this section do not require any action on your part. They are described below to give you a more complete understanding of the changes we've made that relate to Docker Compose.

Beginning in v41 of Hyperscience, the minimum required version of Docker Compose is 2.32.4, a change from the previous minimum required version of 1.29.2. During the installation and upgrade processes, the system retrieves v2.32.4 of the Docker Compose executable file from Docker's official repository.

Differences between Docker Compose v1 and v2

Docker-compatibility handling — Docker Compose v2 is based in the Go programming language, while v1 is based in Python. This change eliminates the need for compatibility handling between Docker Engine and Docker Compose, and there is no need to specify a Docker Compose version in template files. As a result, we have removed the version references found at the beginning (line 1 or 2) of these files.

Formatting of service names — In v1 of Docker Compose, service names are formatted with underscores (e.g., HS_EXAMPLE_1), but in v2, these names are formatted with hyphens (e.g., HS-EXAMPLE-1). For backward compatibility, we have added the --compatibility flag to lines in the code that call for the Docker Compose executable file to be run.

Other enhancements

Recreation of services currently running — As part of the updates made for v41, we've added the --no-recreate flag to the system's code, which prevents the recreation of services that are currently running. In previous versions of Hyperscience, if the code called for an already-running service to be run, the system would recreate it, resulting in the unnecessary consumption of resources.