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, addpython=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 ofenvironment.yml
, you can specify the Python runtime version in a separate file calledruntime.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.