## <i class="far fa-exclamation-triangle"></i> General advice
If something goes wrong when running CMake please try again with an **empty** or newly created build-directory! This is very first thing you should try!
If something goes wrong when running CMake please try again with an **empty** or newly created build-directory! This is the very first thing you should try!
Please read the CMake output carefully. Often it will tell you what went wrong.
Simply download an image from the [releases]({{< ref "/releases" >}}) page.
#### Create custom image with ogs-container-maker
#### Option: Create custom image with ogs-container-maker
Build images with [ogs-container-maker](https://github.com/ufz/ogs-container-maker) on [Jenkins](https://jenkins.opengeosys.org/job/ufz/job/ogs-container-maker/job/master/build) (login required, ask Lars Bilke for access):
...
...
@@ -33,36 +33,44 @@ It will build all combinations of `format`, `openmpi_versions` and `pm`. When th
### Run OGS inside a Container (called from outside)
This starts the container, mounts your home directory inside the container, passes the current working directory and runs the ogs executable (which is in your home directory which is mounted inside the container) with the passed project file. Everything works as expected and is transparent to the user. When ogs finishes the container stops and you returns to the host system.
This starts the container, mounts your home directory inside the container, passes the current working directory and runs the ogs executable (in your home directory which is mounted inside the container) with the passed project file. Everything works as expected and is transparent to the user. When ogs finishes the container stops and you returns to the host system.
The `--app ogs` selects a pre-defined execution environment in the container (i.e. setting the `PATH` to `/scif/apps/ogs/bin` in which all the executables are located). You could also run without the `--app`-parameter but then you had to specify the full executable path in the container:
You can interactively explore the container with `singularity shell` (you can see that you are **in** the container because of the `Singularity [container image file]:...>` prefix of the shell):
```bash
# Shell into container
singularity shell ogs-6.2.0-serial.sif
singularity shell ogs-6.2.2-serial.sif
# List files in the container
Singularity ogs-6.2.0-serial.sif:...> ls /usr/local/ogs/bin
Singularity ogs-6.2.2-serial.sif:...> ls /scif/apps/ogs/bin
... ogs tetgen vtkdiff
# Exit the container and get back to your hosts shell