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
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
renku dependencies, like
R, and (3) some useful command-line tools, like
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
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
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
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.