.. _container: Container ========= Every new version of AQUA generates a new container, which is available on the GitHub Container Registry. Download the container image ---------------------------- The container is available `here `_. Using `Singularity `_ or `Docker `_, you can quickly download the container and load the AQUA environment on any platform. Pull the container image from the docker hub using a personal access token (PAT) generated from GitHub. If you don't have a PAT, :ref:`pat`. .. parsed-literal:: singularity pull --docker-login docker://ghcr.io/destine-climate-dt/aqua:|version| or .. parsed-literal:: docker pull ghcr.io/destine-climate-dt/aqua:|version| This will require you to enter your username and PAT. The above command will create a file called aqua\_\ |version|\.sif in the current directory. .. note:: If you want to use a different version of AQUA, you can change the tag in the above command. For example, to use version 0.7, you can use ``aqua:0.7``. Load the container ------------------ The container can be loaded using the following command: .. parsed-literal:: singularity shell --cleanenv aqua\_\ |version|\.sif or analogue for Docker. Anyway, you may want to bind some folders to the container to access your data and scripts or to define some environment variables. Load container script ^^^^^^^^^^^^^^^^^^^^^ AQUA provides scripts to use the AQUA container (updated to the last release) with Singularity on LUMI, Levante and MN5. These contain also bindings to the commonly used folders on the machine but they can be easily adapted to other platforms. The scripts are located in the ``cli/aqua-container/load_AQUA_container.sh``, and it is centralized for all the three machines. The script can be called and will guide the user to load the container in an interactive way. Otherwise some options can be passed to the script to avoid the interactive mode, for example in a batch job. .. option:: machine Mandatory argument, could be ``levante``, ``lumi`` or ``MN5``. This set env variables and bindings which are specifically required. .. option:: -n, --native Load the container with the local version of AQUA found in the ``$AQUA`` environment variable (which must be defined). Please also notice that to be fully able to exploit the local installation of AQUA you will need to run `pip install -e $AQUA` once you are in the container. Use this option with caution since it is not how the container is meant to work. .. option:: -v, --version Load a specific version of the AQUA container. The default is the "latest" version available on the machine .. option:: -c, --command