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 ...
Run the build
command:
--rm
Cleans up after exiting the container-t
specifies 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 -i
-switch:
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 gcc
and clang
.
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:
ogs6/gcc
, defined in scripts/docker/Dockerfile.gcc.fullogs6/gcc:gui
, defined in scripts/docker/Dockerfile.gcc.guiogs6/clang
, defined in scripts/docker/Dockerfile.clang.fullThis article was written by Lars Bilke. If you are missing something or you find an error please let us know.
Generated with Hugo 0.54.0. Last revision: February 11, 2019
Commit: [web] Container maker documentation. 87e2efe7b
| Edit this page on