Container build instructions¶
The containers in this repository can be pulled directly from the singularity-hub container registry as follows:
build <CONTAINER_NAME>.simg shub://rickstaa/panda_autograsp:ros-kinetic-cuda10-xenial
It can also be built from the recipe file using the following command:
sudo singularity <CONTAINER_NAME>.simg shub://rickstaa/panda_autograsp:ros-kinetic-cuda10-xenial
You can also add the --sandbox
argument to build the container
as a writeable folder.
Warning
You need root access to build from a recipe file.
Container run instructions¶
After the container is built, you can use the singularity shell
,
start
and run
commands to interact with the container.
You are advised to use the run
command since this also sources
a .singularity_bashrc
file that is present in each of the containers.
This file can be used as a .bashrc
file. You can run the singularity
container using one of the following run
commands:
With Nvidia GPU:
$ singularity run --nv <YOUR_CONTAINER_NAME>
Without Nvidia GPU:
$ singularity run <YOUR_CONTAINER_NAME>
Note
Additionally, you can also add the --writable
parameter to the run command
to receive write permissions.
Additional container instructions¶
Container aliases¶
To increase convenience a number of bash aliases were added to the containers:
atf
: activates the tf-gpu conda environmentdtf
: deactivates the tf-gpu conda environmentdconda
: deactivates the conda enviromentrsource
: sources the ROS setup.bash filerossu
: sources the setup.bash file at./devel/setup.bash
You can unset these aliases or add additional aliases by
creating a ~/.singularity_bash_aliases
file in your user home directory.
If such a ~/.singularity_bash_aliases
file is present in your home folder, it will be sourced after the container its
~/.singularity_bash_aliases
file.
Container .bashrc¶
A .singularity_bashrc
file is present inside the containers. This file is
sourced when you run the container. You can overload all of the commands,
aliases and settings contained in this .singularity_bashrc
file by creating
your own ~/.singularity_bashrc
file in your home folder. If such a
~/.singularity_bashrc
file is present in your home folder, it will
be sourced after the container its ~/.singularity_bashrc
file.
Container permissions¶
By default your user can not write to the container folder when begin outside of the container. If you did build the singularity container as a writeable folder you can give your user write and read access from outside the singularity container by:
Changing the group owner to your user group.
sudo chgrp -R <YOUR_USER_NAME> ./<YOUR_CONTAINER_NAME>
Giving your user group _read and write_ access to the
<YOUR_CONTAINER_NAME
folder.
sudo chmod -R g+rwx ./<YOUR_CONTAINER_NAME>
Add a visual code IDE to the singularity container¶
Visual studio code can be added to the singularity container in order to enable easy code debugging. This is done as follows:
Run your container using the
sudo singularity run --writable <YOUR_CONTAINER_NAME>
Install visual code or visual code-insiders using the following bash commands:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install code # or code-insiders
Note
Since visual code requires the /run folder you need to add the -B /run
argument when running a singularity container.
For more information see this issue.