Skip to content

Commit 0f942b8

Browse files
committed
add easier navigation
1 parent cf425df commit 0f942b8

File tree

10 files changed

+62
-5
lines changed

10 files changed

+62
-5
lines changed

00-introduction/README.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<- [previous](/) - [home](https://singularity-tutorial.github.io/) - [next](/01-installation) ->
2+
3+
---
14
# Introduction
25

36
## What IS a software container anyway? (And what's it good for?)
@@ -87,3 +90,6 @@ Singularity assumes that you will have a build system where you are the root use
8790
- Under active development (must keep up with new changes)
8891

8992
Singularity shines for scientific software running in an HPC environent. We will use it for the remainder of the class.
93+
94+
---
95+
<- [previous](/) - [home](https://singularity-tutorial.github.io/) - [next](/01-installation) ->

01-installation/README.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<- [previous](/00-introduction) - [home](https://singularity-tutorial.github.io/) - [next](/02-basic-usage) ->
2+
3+
---
14
# Installing Singularity
25
Here we will install the latest tagged release from [GitHub](https://github.com/sylabs/singularity/releases). If you prefer to install a different version or to install Singularity in a different location, see these [Singularity docs](https://sylabs.io/guides/3.5/admin-guide/installation.html).
36

@@ -92,4 +95,7 @@ Your cow will likely say something different (and be more colorful), but as long
9295

9396
This command downloads and "runs" a container from [Singularity Container Library](https://cloud.sylabs.io/library). (We'll be talking more about what it means to "run" a container later on in the class.)
9497

95-
In a following exercise, we will learn how to build a similar container from scratch. But right now, we are going to use this container to execute a bunch of basic commands and just get a feel for what it's like to use Singularity.
98+
In a following exercise, we will learn how to build a similar container from scratch. But right now, we are going to use this container to execute a bunch of basic commands and just get a feel for what it's like to use Singularity.
99+
100+
---
101+
<- [previous](/00-introduction) - [home](https://singularity-tutorial.github.io/) - [next](/02-basic-usage) ->

02-basic-usage/README.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<- [previous](/01-installation) - [home](https://singularity-tutorial.github.io/) - [next](/03-building) ->
2+
3+
---
14
# Downloading and Interacting with Containers
25

36
This section will be useful for container consumers. (i.e. those who really just want to use containers somebody else built.) The next chapter will explore topics more geared toward container producers (i.e. those who want/need to build containers from scratch).
@@ -264,3 +267,6 @@ $ singularity exec lolcow_latest.sif sh -c "fortune | cowsay | lolcat"
264267
The above invokes a new shell, but inside the container, and tells it to run the single command line `fortune | cowsay | lolcat`.
265268

266269
That covers the basics on how to download and use pre-built containers! In the next section we'll start learning how to build your own containers.
270+
271+
---
272+
<- [previous](/01-installation) - [home](https://singularity-tutorial.github.io/) - [next](/03-building) ->

03-building/README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2+
<- [previous](/02-basic-usage) - [home](https://singularity-tutorial.github.io/) - [next](/04-the-ecosystem) ->
3+
4+
---
15
# Building a Basic Container
26

37
In this section, we will build a brand new container similar to the lolcow container we've been using in the previous examples.
@@ -295,4 +299,7 @@ $ singularity build --fakeroot container.sif container.def
295299

296300
Doing so allows you to pretend to be the root user inside of your container without actually granting singularity elevated privileges on host system. This is a much safer way to build and interact with your container, and it is going to become more prevalent (eventually probably even default) as more distributions ship with user namespaces enabled. For instance, this feature is enabled by default in RHEL 8.
297301

298-
For more about the `--fakeroot` option, see [the Singularity documentation](https://sylabs.io/guides/3.5/user-guide/fakeroot.html?highlight=fakeroot).
302+
For more about the `--fakeroot` option, see [the Singularity documentation](https://sylabs.io/guides/3.5/user-guide/fakeroot.html?highlight=fakeroot).
303+
304+
---
305+
<- [previous](/02-basic-usage) - [home](https://singularity-tutorial.github.io/) - [next](/04-the-ecosystem) ->

04-the-ecosystem/README.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<- [previous](/03-building) - [home](https://singularity-tutorial.github.io/) - [next](/05-bind-mounts) ->
2+
3+
---
14
# The Singularity Ecosystem
25

36
We've spent a lot of time on building and using your own containers so that you understand how Singularity works. Now let's talk more about the [Singularity Container Services](https://cloud.sylabs.io/home) and [Docker Hub](https://hub.docker.com/).
@@ -227,4 +230,7 @@ INFO: Container verified: alpine.sif
227230

228231
Anyone can sign a container. So just because a container is signed, does not mean it should be trusted. Users must obtain the fingerprint associated with a given maintainer's key and compare it with that displayed by the `verify` command to ensure that the container is authentic. After that it is up to the user to decide if they trust the maintainer.
229232

230-
---
233+
---
234+
235+
---
236+
<- [previous](/03-building) - [home](https://singularity-tutorial.github.io/) - [next](/05-bind-mounts) ->

05-bind-mounts/README.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<- [previous](/04-the-ecosystem) - [home](https://singularity-tutorial.github.io/) - [next](/06-runscript) ->
2+
3+
---
14
# Accessing Host Files with Bind Mounts
25

36
It's possible to create and modify files on the host system from within the container. In fact, that's exactly what we did in the previous example when we created output files in our home directory.
@@ -71,3 +74,6 @@ $ export SINGULARITY_BINDPATH=src1:dest1,src2:dest2,src3:dest3
7174
```
7275

7376
For a lot more info on how to bind mount host directories to your container, check out the [NIH HPC Binding external directories](https://hpc.nih.gov/apps/singularity.html#bind) section.
77+
78+
---
79+
<- [previous](/04-the-ecosystem) - [home](https://singularity-tutorial.github.io/) - [next](/06-runscript) ->

06-runscript/README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<- [previous](/05-bind-mounts) - [home](https://singularity-tutorial.github.io/) - [next](/07-fake-installation) ->
2+
3+
---
14
# The Runscript: Making Containerized Apps Behave Like Normal Apps
25

36
Consider an application that takes one file as input, analyzes the data in the file, and produces another file as output. This is obviously a very common situation.
@@ -121,4 +124,5 @@ You will often see this or something similar as a containers runscript.
121124
```
122125
What does this do?
123126

124-
---
127+
---
128+
<- [previous](/05-bind-mounts) - [home](https://singularity-tutorial.github.io/) - [next](/07-fake-installation) ->

07-fake-installation/README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<- [previous](/06-runscript) - [home](https://singularity-tutorial.github.io/) - [next](/08-misc) ->
2+
3+
---
14
# Faking a Native Installation within a Singularity Container
25

36
How would you like to install an app with one more more commands inside of a Singularity container and then just forget it's in a container and use it like any other app?
@@ -142,4 +145,5 @@ $ fortune | cowsay -n | lolcat
142145

143146
If you have too much time on your hands, you might try linking things like `sh`, `bash`, `ls`, or `cd` to the container wrapper script. But otherwise **don't**... because it will cause you a lot of trouble. :-)
144147

145-
---
148+
---
149+
<- [previous](/06-runscript) - [home](https://singularity-tutorial.github.io/) - [next](/08-misc) ->

08-misc/README.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<- [previous](/07-fake-installation) - [home](https://singularity-tutorial.github.io/)
2+
3+
---
14
# Miscellaneous Topics and FAQs
25

36
## X11 and OpenGL
@@ -143,3 +146,6 @@ When finished, don't forget to stop all running instances like so:
143146
```
144147
$ sudo singularity instance.stop --all
145148
```
149+
150+
---
151+
<- [previous](/07-fake-installation) - [home](https://singularity-tutorial.github.io/)

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
[home](https://singularity-tutorial.github.io/) - [next](/00-introduction) ->
2+
3+
---
14
# <b>Creating and running software containers with Singularity</b>
25

36
### <i>How to use [Singularity](https://sylabs.io/guides/latest/user-guide/)! </i>
@@ -24,3 +27,6 @@ This is an introductory workshop on Singularity. It was originally taught by [Da
2427
- [The Runscript: Making Containerized Apps Behave Like Normal Apps](/06-runscript)
2528
- [Faking a Native Installation within a Singularity Container](/07-fake-installation)
2629
- [Miscellaneous Topics and FAQs](/08-misc)
30+
31+
---
32+
[home](https://singularity-tutorial.github.io/) - [next](/00-introduction) ->

0 commit comments

Comments
 (0)