What software is installed by default when I launch an environment on renkulab?

When you launch an environment on renkulab (e.g. here: renkulab.io) from a project you have “maintainer” access to (e.g. it’s a project you have created, forked, or been granted access to as an individual or a group), you are redirected into an interactive environment (Jupyterlab or RStudio as specified by the configuration) where you can do work and save your changes by git pushing.

This environment is controlled by the contents of the Dockerfile in your project. We provide one for you when you create a project on renkulab or by command-line with renku init with a minimal-ish set of (1) dependencies for launching environments on renkulab, (2) renku and renku dependencies, like git, git-lfs, python and/or R, and (3) some useful command-line tools, like vim.

Every time you push changes to your project, the GitLab CI/CD pipeline (using the hidden .gitlab-ci.yml file) runs and builds an image for that commit from this Dockerfile – those images are stored, and we can use them to launch the interactive environments from renkulab.

You can see specifically which software and which versions are installed by default by checking the first line in the Dockerfile in your project; it should start with FROM, e.g.

FROM renku/singleuser-r:0.4.3-renku0.8.2

This corresponds to a tag of an image stored on docker hub (https://hub.docker.com/r/renku/singleuser-r/tags), built from this repository, where you can read the contents of the Dockerfiles in the /docker directory at the also-tagged commit (https://github.com/SwissDataScienceCenter/renku-jupyter).

If you already have a Dockerfile in your project, you’ll want to add the extra dependencies to the commented sections provided in the default Dockerfile provided by renkulab/renku project creation/initialization. If the build fails, you’ll have to spend a little more time checking for compatibility – e.g. you might be able to put your own dependencies first, and add the renku dependencies using the renku-jupyter project as a reference. Feel free to ask questions in this thread.

If you want to add extra software and it’s (python) pip-installable, just add your software as a list into requirements.txt, constraining the versions. You can then

pip install -r requirements.txt

in an active session, and then the next time you launch an interactive environment the container will have the dependencies automatically.

1 Like