Choose languages for your environment#

You can define many different languages in your configuration files. This page describes how to use some of the more common ones.

Python#

Your environment will have Python (and specified dependencies) installed when you use one of the following configuration files:

  • requirements.txt

  • environment.yml

Note

By default, the environment will have Python 3.7.

Changed in version 0.8: Upgraded default Python from 3.6 to 3.7.

Specifying a version of Python#

To specify a specific version of Python, you have two options:

  • Use environment.yml. Conda environments let you define the Python version in environment.yml. To do so, add python=X.X to your dependencies section, like so:

    name: python 2.7
    dependencies:
      - python=2.7
      - numpy
    
  • Use runtime.txt with requirements.txt. If you are using requirements.txt instead of environment.yml, you can specify the Python runtime version in a separate file called runtime.txt. This file contains a single line of the following form:

    python-X.X
    

    For example:

    python-3.6
    

The R Language#

repo2docker supports R, the open source RStudio IDE as well as Jupyter support for R with the IRKernel. To set it up, you need to create a runtime.txt file with the following format:

r-<version>-<YYYY>-<MM>-<DD>

This will provide you R of given version (such as 4.1, 3.6, etc), and a CRAN snapshot to install libraries from on the given date. You can install more R packages from CRAN by adding a install.R file to your repo. RStudio and IRKernel are installed by default for all R versions.

If you request R 4.1 or later, or specify a snapshot date newer than 2022-01-01, packagemanager.rstudio.com will be used to provide much faster installations via binary packages. For some packages, this might require you install underlying system libraries using apt.txt - Install packages with apt-get - look at the page for the CRAN package you are interested in at packagemanager.rstudio.com to find a list.

For older R versions with an older snapshot date, MRAN is used as source of packages. This purely provides source packages, and you should migrate away from this if possible.

Julia#

To build an environment with Julia, include a configuration file called Project.toml. The format of this file is documented at the Julia Pkg.jl documentation. To specify a specific version of Julia to install, put a Julia version in the [compat] section of the Project.toml file, as described here: https://julialang.github.io/Pkg.jl/v1/compatibility/.

Languages not covered here#

If a language is not “officially” supported by a build pack, it can often be installed with a postBuild script. This will run arbitrary bash commands, and can be used to download / install a language.

Using multiple languages at once#

It may also be possible to combine multiple languages in a single environment. The details on how to accomplish this with all possible combinations are outside the scope of this guide. However we recommend that you take a look at the Multi-Language Demo repository for some inspiration.