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.10.
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.Xto 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.txtinstead 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.
packagemanager.posit.co 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.posit.co to find a list.
repo2docker stopped using the Microsoft mirror MRAN for older R versions after its shutdown in July, 2023.
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.
