The ODS uses docker images for both development, testing and deployment.
It is crucial that we regularly update the used image versions to stay up-to-date.
Note that we do not use e.g. the latest
tag to avoid pulling in breaking changes.
- development and unit-test
Dockerfiles
for the services adapter, notification, pipeline, scheduler, storage/storage-mq, ui. - self-extended
Dockerfiles
for storage/liquibase, storage/postgrest. - integration tests
Dockerfiles
for adapter, notification, pipeline, scheduler, storage, ui. Dockerfiles
for system-test.docker-compose
dependencies for services like edge, databases or rabbitmq.- GitHub CI Workflow
Last Update: November 2020.
Wherever possible we trust the image creators to follow semantic versioning. For this reason we try to specify major versions so we automatically get the latest updates without having to check for breaking API changes.
All services and their integration tests written in JavaScript and the system test use the official Node.js image node
. The image version 14-alpine
is used as Node.js 14 is the current LTS-version.
For Java the OpenJDK OpenJ9 images provided by AdoptOpenJDK
are used, in the alpine-slim
version.
OpenJ9 is a implementation of the JVM specifically designed for microservices and usage in the cloud.
See here for background information.
We currenly use version 14 of OpenJDK. See here for the version roadmap of Java.
We use the official postgres
images.
We use the version 13-alpine
as it is the latest version.
For PostgreSQL versioning see here.
For RabbitMQ we use the official rabbitmq
image in version 3-management-alpine
.
For PostgREST we use the official postgrest
image in version v7.0.1
.
PostgREST does not offer tags that follow the semantic versioning docker tag style, so we have to specify a version.
For Liquibase we use the webdevops:liquibase
image in version postgres
.
For Traefik we use the official traefik
image in the latest version 2.3
.
For nginx we use the official nginx
image in version 1-alpine
.
We use ubuntu-18.04
which is also used if you use latest
.
See here for details.
See also this for changing to ubuntu-20.04
.