Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
See the docs for installation instructions.
Docker images can be created by Dockerfiles which can be stacked and thus form a directed graph. OGS-6 image definitions are created with ufz/ogs-container-maker. Built images can be found at Docker Hub.
To build an image by yourself create a Dockerfile:
FROM ubuntu:17.10 RUN ...
--rmCleans up after exiting the container
-tspecifies a name for the image, can be arbitrary chosen (but should match the corresponding image on Docker Hub if there is one)
Now you can see your build image with
$ docker images.
To run commands inside a container:
To run an interactive shell add the
It is useful to mount folders from the host operating system in the Docker container, e.g. to edit source code on your host with your favorite editor:
There are docker images provided on Docker Hub which include everything necessary to build OGS-6. They are intended to be used by Jenkins. Do not use them for development as you will run into permission issues (when mounting your source code into the container: in the container you are the
jenkins user which has other
Use Singularity container for development instead.
There are images for
The following images are used by Jenkins: