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.
There are images for
E.g. to start developing OGS:
You are now in the Docker container the ogs source code from your host computer mounted at
/usr/src/ogs. Now you can build and run OGS:
The following images are used by Jenkins: