Setup¶
Rat-Containers defines several recipes for different containers in order to reproducibly build Rat C++ libraries on different Linux-based platforms.
Containerization solution¶
CONTAINERIZATION SOLUTION CONTENTS
There are several containerization programs available in the wild (e.g. SingularityCE, Docker or even Nix). They allow to define recipes to build isolated development environment in a reproducible manner. This way users (mostly) get the exact same results independently of their environments.
The isolation is also key in order not to conflict with the system or user libraries, allowing for clean packaging of libraries and programs.
Very much like Rat-vcpkg, Rat-Containers streamlines the process of compilation Rat C++ libraries, but on Linux-based platforms and within containers. That way building and linking Rat projects (e.g. pyRat Python C++ bindings for Rat and pyRat Python wheels) is much easier and more consistent across Linux-based platforms.
The solution used for containerization depends on the end user, and some solutions are more suited to certain jobs than others.
Each solution has its own setup thus it is advised to dive into the ones of interest in order to implement and use them. See the above table of content for more detailed information about solutions that are implemented for the time being.
Important
Rat-Containers emphasizes on SingularityCE since it is the
standard option for HPC platforms given its non sudo
requirements to run code on nodes. Docker might of course be
given interest in the future. Users can easily derive
Dockerfiles from the SingularityCE Definition
Files of this repository if needed.