aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/containers/README-apptainer.md
blob: a7826ecac49de267c19308ba042cf534a986280e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Maneage'd projects in Apptainer

Copyright (C) 2025-2025 Mohammad Akhlaghi <mohammad@akhlaghi.org>\
Copyright (C) 2025-2025 Giacomo Lorenzetti <glorenzetti@cefca.es>\
See the end of the file for license conditions.

For an introduction on containers, see the "Building in containers" section
of the `README.md` file within the top-level directory of this
project. Here, we focus on Apptainer with a simple checklist on how to use
the `apptainer-run.sh` script that we have already prepared in this
directory for easy usage in a Maneage'd project.





## Building your Maneage'd project in Apptainer

Through the steps below, you will create an Apptainer image that will only
contain the software environment and keep the project source and built
analysis files (data and PDF) on your host operating system. This enables
you to keep the size of the image to a minimum (only containing the built
software environment) to easily move it from one computer to another.

 1. Using your favorite text editor, create a `run.sh` in your top Maneage
    directory (as described in the comments at the start of the
    `apptainer.sh` script in this directory). Just add `--build-only` on
    the first run so it doesn't go onto doing the analysis and just sets up
    the software environment. Set the respective directory(s) based on your
    filesystem (the software directory is optional). The `run.sh` file name
    is already in `.gitignore` (because it contains local directories), so
    Git will ignore it and it won't be committed by mistake.

 2. Make the script executable with `chmod +x ./run.sh`, and run it with
    `./run.sh`.

 3. Once the build finishes, the build directory (on your host) will
    contain two Singularity Image Format (SIF) files listed below. You can
    move them to any other (more permanent) positions in your filesystem or
    to other computers as needed.
    * `maneage-base.sif`: image containing the base operating system that
      was used to build your project. You can safely delete this unless you
      need to keep it for future builds without internet (you can give it
      to the `--base-name` option of this script). If you want a different
      name for this, put the same option in your
    * `maneaged.sif`: image with the full software environment of your
      project. This file is necessary for future runs of your project
      within the container.

 3. To execute your project remote the `--build-only` and use `./run.sh` to
    execute it. If you want to enter your Maneage'd project shell, add the
    `--project-shell` option to the call inside `./run.sh`.





## Copyright information

This file is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.

This file is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.

You should have received a copy of the GNU General Public License along
with this file.  If not, see <https://www.gnu.org/licenses/>.