Skip to content

Latest commit

 

History

History
67 lines (42 loc) · 3.14 KB

docker-dependencies.md

File metadata and controls

67 lines (42 loc) · 3.14 KB

Docker Dependencies

Motivation

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.

Places in which docker images are used

  • 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

Used docker image versions

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.

Node

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.

Java

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.

PostgreSQL

We use the official postgres images. We use the version 13-alpine as it is the latest version. For PostgreSQL versioning see here.

RabbitMQ

For RabbitMQ we use the official rabbitmq image in version 3-management-alpine.

PostgREST

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.

Liquibase

For Liquibase we use the webdevops:liquibase image in version postgres.

Traefik

For Traefik we use the official traefik image in the latest version 2.3.

nginx

For nginx we use the official nginx image in version 1-alpine.

Ubuntu Image for CI

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.