diff --git a/README.md b/README.md
index 19e862520bd00ea9303c221780805780ad94e638..7f2e8d1d830c54fcc41b0315f8560b15d4f27626 100644
--- a/README.md
+++ b/README.md
@@ -59,17 +59,12 @@ Check help for more options:
 
 ```
 $ ogscm --help
-usage: ogscm [-h] [--version] [--out OUT] [--file FILE] [--print]
-              [--format [{docker,singularity} [{docker,singularity} ...]]]
-              [--pm [{system,conan,spack,off} [{system,conan,spack,off} ...]]]
-              [--ompi [OMPI [OMPI ...]]] [--ogs [OGS [OGS ...]]]
-              [--cmake_args [CMAKE_ARGS [CMAKE_ARGS ...]]] [--build]
-              [--upload] [--registry REGISTRY] [--convert] [--runtime-only]
-              [--ccache] [--parallel PARALLEL] [--base_image BASE_IMAGE]
-              [--compiler COMPILER] [--compiler_version COMPILER_VERSION]
-              [--gui] [--docs] [--jenkins] [--cvode] [--cppcheck] [--iwyy]
-              [--gcovr] [--mpi_benchmarks] [--dev] [--insitu]
-              [--pip [package [package ...]]] [--clean] [--deploy [DEPLOY]]
+usage: ogscm [-h] [--version] [--out OUT] [--file FILE] [--print] [--format [{docker,singularity} [{docker,singularity} ...]]]
+              [--pm [{system,conan,spack,off} [{system,conan,spack,off} ...]]] [--ompi [OMPI [OMPI ...]]] [--ogs [OGS [OGS ...]]]
+              [--cmake_args [CMAKE_ARGS [CMAKE_ARGS ...]]] [--build] [--upload] [--registry REGISTRY] [--tag TAG] [--convert] [--runtime-only] [--ccache]
+              [--parallel PARALLEL] [--base_image BASE_IMAGE] [--compiler COMPILER] [--compiler_version COMPILER_VERSION] [--gui] [--docs] [--jenkins]
+              [--gitlab] [--cvode] [--cppcheck] [--iwyy] [--gcovr] [--mpi_benchmarks] [--dev] [--insitu] [--pip [package [package ...]]]
+              [--packages [packages [packages ...]]] [--clean] [--deploy [DEPLOY]]
 
 optional arguments:
   -h, --help            show this help message and exit
@@ -83,69 +78,56 @@ Combinatorial options:
 
   --format [{docker,singularity} [{docker,singularity} ...]]
   --pm [{system,conan,spack,off} [{system,conan,spack,off} ...]]
-                        Package manager to install third-party dependencies
-                        (default: ['conan'])
+                        Package manager to install third-party dependencies (default: ['conan'])
   --ompi [OMPI [OMPI ...]]
-                        OpenMPI version, e.g. 2.1.1, 2.1.5, 3.0.1, 3.1.2
-                        (default: ['off'])
+                        OpenMPI version, e.g. 2.1.1, 2.1.5, 3.0.1, 3.1.2 (default: ['off'])
   --ogs [OGS [OGS ...]]
-                        OGS GitHub repo in the form 'user/repo@branch' OR
-                        'user/repo@@commit' to checkout a specific commit OR a
-                        path to a local subdirectory to the git cloned OGS
-                        sourcesOR 'off' to disable OGS building (default:
-                        ['ufz/ogs@master'])
+                        OGS GitHub repo in the form 'user/repo@branch' OR 'user/repo@@commit' to checkout a specific commit OR a path to a local subdirectory
+                        to the git cloned OGS sources OR 'off' to disable OGS building (default: ['ufz/ogs@master'])
   --cmake_args [CMAKE_ARGS [CMAKE_ARGS ...]]
-                        CMake argument sets have to be quoted and **must**
-                        start with a space. e.g. --cmake_args ' -DFIRST=TRUE
-                        -DFOO=BAR' ' -DSECOND=TRUE' (default: [''])
+                        CMake argument sets have to be quoted and **must** start with a space. e.g. --cmake_args ' -DFIRST=TRUE -DFOO=BAR' ' -DSECOND=TRUE'
+                        (default: [''])
 
 Image build options:
-  --build, -B           Build the images from the definition files (default:
-                        False)
+  --build, -B           Build the images from the definition files (default: False)
   --upload, -U          Upload Docker image to registry (default: False)
-  --registry REGISTRY   The docker registry the image is tagged and uploaded
-                        to. (default: registry.opengeosys.org/ogs/ogs)
-  --convert, -C         Convert Docker image to Singularity image (default:
-                        False)
-  --runtime-only, -R    Generate multi-stage Dockerfiles for small runtime
-                        images (default: False)
+  --registry REGISTRY   The docker registry the image is tagged and uploaded to. (default: registry.opengeosys.org/ogs/ogs)
+  --tag TAG             The full docker image tag. Overwrites --registry. (default: )
+  --convert, -C         Convert Docker image to Singularity image (default: False)
+  --runtime-only, -R    Generate multi-stage Dockerfiles for small runtime images (default: False)
   --ccache              Enables ccache build caching. (default: False)
   --parallel PARALLEL, -j PARALLEL
-                        The number of cores to use for compilation. (default:
-                        10)
+                        The number of cores to use for compilation. (default: 10)
 
 Additional options:
   --base_image BASE_IMAGE
-                        The base image. (default: ubuntu:18.04)
-  --compiler COMPILER   The compiler to use. Possible options: off, gcc, clang
-                        (default: gcc)
+                        The base image. (centos:8 is supported too) (default: ubuntu:19.10)
+  --compiler COMPILER   The compiler to use. Possible options: off, gcc, clang (default: gcc)
   --compiler_version COMPILER_VERSION
                         Compiler version. (default: )
   --gui                 Builds the GUI (Data Explorer) (default: False)
-  --docs                Setup documentation requirements (Doxygen) (default:
-                        False)
+  --docs                Setup documentation requirements (Doxygen) (default: False)
   --jenkins             Setup Jenkins slave (default: False)
+  --gitlab              Setup for GitLab-CI (default: False)
   --cvode               Install and configure with cvode (default: False)
   --cppcheck            Install cppcheck (default: False)
   --iwyy                Install include-what-you-use (default: False)
   --gcovr               Install gcovr (default: False)
-  --mpi_benchmarks      Installs OSU MPI benchmarks as scif app and mpi_bw,
-                        mpi_ring,mpi_hello (default: False)
+  --mpi_benchmarks      Installs OSU MPI benchmarks as scif app and mpi_bw, mpi_ring,mpi_hello (default: False)
   --dev                 Installs development tools (vim, gdb) (default: False)
   --insitu              Builds with insitu capabilities (default: False)
   --pip [package [package ...]]
-                        Install additional Python packages (default: [''])
+                        Install additional Python packages (default: [])
+  --packages [packages [packages ...]]
+                        Install additional OS packages (default: [])
 
 Maintenance:
-  --clean               Cleans up generated files in default directories.
-                        (default: False)
+  --clean               Cleans up generated files in default directories. (default: False)
 
 Image deployment:
   --deploy [DEPLOY], -D [DEPLOY]
-                        Deploys to all configured hosts (in
-                        config/deploy_hosts.yml) with no additional arguments
-                        or to the specified host. Implies --build and
-                        --convert arguments. (default: )
+                        Deploys to all configured hosts (in config/deploy_hosts.yml) with no additional arguments or to the specified host. Implies --build
+                        and --convert arguments. (default: )
 ```
 
 ## Advanced usage
diff --git a/ogscm/building_blocks/ogs.py b/ogscm/building_blocks/ogs.py
index bf6c893daf5b61d16d9846bbe2385d47a69e06e7..94f6352f19624fb5f5c3903999e8d8fa7d7d8085 100644
--- a/ogscm/building_blocks/ogs.py
+++ b/ogscm/building_blocks/ogs.py
@@ -112,7 +112,7 @@ class ogs(bb_base, hpccm.templates.CMakeBuild, hpccm.templates.rm):
             self.__cmake_args.append("-DOGS_USE_PETSC=ON")
             if conan:
                 self.__cmake_args.append("-DOGS_CONAN_USE_SYSTEM_OPENMPI=ON")
-        if conan:
+        if not conan:
             self.__cmake_args.append('-DOGS_USE_CONAN=OFF')
 
         # Configure and build
diff --git a/ogscm/building_blocks/ogs_base.py b/ogscm/building_blocks/ogs_base.py
index 7c3d1bf6e9e03943f9a320295bda4ac6bfc302e8..d9896cc12baf004300ff09ed107df25b19c8a1ae 100644
--- a/ogscm/building_blocks/ogs_base.py
+++ b/ogscm/building_blocks/ogs_base.py
@@ -40,7 +40,7 @@ class ogs_base(bb_base):
                     packages=['virtualenv', 'pre-commit', 'cmake-format'])
         self += packages(ospackages=self.__ospackages,
                          apt_ppas=['ppa:git-core/ppa'],
-                         epel=True)
+                         epel=True, powertools=True)
         self += shell(commands=self.__commands)
 
     def __setup(self):
diff --git a/ogscm/cli.py b/ogscm/cli.py
index 1ee7e91749093aa62676b821db39e836a62941f5..5310bec589eecc24f8d2ce35c0faa70f33ff5200 100644
--- a/ogscm/cli.py
+++ b/ogscm/cli.py
@@ -284,7 +284,7 @@ def main():  # pragma: no cover
             # LD_LIBRARY_PATH) as host var overwrites container var. See
             # https://github.com/sylabs/singularity/pull/2669
             # Stage0 += boost(version='1.66.0')  # header only?
-            Stage0 += packages(ospackages=['libboost-dev'])
+            Stage0 += packages(apt=['libboost-dev'], yum=['boost-devel'], epel=True)
             # Stage0 += environment(variables={'BOOST_ROOT': '/usr/local/boost'})
             Stage0 += eigen()
             vtk_cmake_args = [
@@ -293,13 +293,20 @@ def main():  # pragma: no cover
                 '-DVTK_Group_StandAlone=OFF'
             ]
             if args.gui:
-                Stage0 += packages(ospackages=[
-                    'libgeotiff-dev',
-                    'libqt5x11extras5-dev',
-                    'libqt5xmlpatterns5-dev',
-                    'libshp-dev',
-                    'qt5-default'
-                ])
+                Stage0 += packages(apt=[
+                        'libgeotiff-dev',
+                        'libshp-dev',
+                        'libqt5x11extras5-dev',
+                        'libqt5xmlpatterns5-dev',
+                        'qt5-default'
+                    ],
+                    yum=[
+                        'libgeotiff-devel',
+                        'shapelib-devel',
+                        'qt5-qtbase',
+                        'qt5-qtxmlpatterns',
+                        'qt5-qtx11extras'
+                    ])
                 vtk_cmake_args = [
                     '-DVTK_BUILD_QT_DESIGNER_PLUGIN=OFF',
                     '-DVTK_Group_Qt=ON',
@@ -358,11 +365,14 @@ def main():  # pragma: no cover
             Stage0 += raw(docker=f"ARG OGS_COMMIT_HASH={info.commit_hash}")
 
             scif_file = f"{info.out_dir}/ogs.scif"
+            definition_file_path = os.path.join(info.out_dir, info.definition_file)
             if info.ogsdir:
                 context_path_size = len(ogs_version)
+                print(f"chdir to {ogs_version}")
                 os.chdir(ogs_version)
                 mount_args = f'{mount_args} --mount=type=bind,target=/scif/apps/ogs/src,rw'
                 scif_file = f"{info.out_dir[context_path_size+1:]}/ogs.scif"
+                definition_file_path = f"{info.out_dir[context_path_size+1:]}/{info.definition_file}"
 
             ogs_app = scif(_arguments=mount_args, name='ogs', file=scif_file)
             ogs_app += ogs(repo=info.repo,
@@ -391,14 +401,12 @@ def main():  # pragma: no cover
             stages_string += "\n\n" + str(Stage1)
 
         # ---------------------------- recipe end -----------------------------
-
-        definition_file_path = os.path.join(info.out_dir, info.definition_file)
         with open(definition_file_path, 'w') as f:
             print(stages_string, file=f)
         if args.print:
             print(stages_string)
         else:
-            print(f'Created definition {definition_file_path}')
+            print(f'Created definition {os.path.abspath(definition_file_path)}')
 
         # Create image
         if not args.build:
@@ -417,8 +425,6 @@ def main():  # pragma: no cover
 
         build_cmd = (f"DOCKER_BUILDKIT=1 docker build "
                      f"-t {info.tag} -f {definition_file_path} .")
-        if info.ogsdir:
-            build_cmd = "(cd {0} && {1})".format(ogs_version, build_cmd)
         print(f"Running: {build_cmd}")
         subprocess.run(build_cmd, shell=True)
         inspect_out = subprocess.check_output(
diff --git a/ogscm/cli_args.py b/ogscm/cli_args.py
index d08a771acfb9f535ebabe9c59f4b3f7b3768c443..5d6e528a2a4532a6cd82646f1e92fedf882124af 100644
--- a/ogscm/cli_args.py
+++ b/ogscm/cli_args.py
@@ -126,7 +126,7 @@ class Cli_Args(argparse.ArgumentParser):
         switches_g.add_argument('--base_image',
                                 type=str,
                                 default='ubuntu:19.10',
-                                help='The base image.')
+                                help='The base image. (centos:8 is supported too)')
         switches_g.add_argument(
             '--compiler',
             type=str,