You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/index.md
+10-6Lines changed: 10 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,19 @@
1
1
# Welcome to `repo2docker`'s documentation
2
2
3
+
```{important}
4
+
Despite the name, `repo2docker` can be used by container technology other than [Docker](https://docs.docker.com/engine/), for example [Podman](https://podman.io/).
5
+
```
6
+
3
7
`repo2docker` lets you **reproducibly build and run user environment container images for interactive computing and data workflows from source code repositories**. Optionally, the container image can be pushed to a Docker registry.
4
8
5
9
Also, `repo2docker` is the tool used to build container images for [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/) and the tool used by [BinderHub](https://binderhub.readthedocs.io) to build images on demand.
6
10
7
11
::::{grid}
8
12
:::{grid-item-card} 🔧 Build reproducible data science environments from repositories
9
-
Build a reproducible data science environment as a Docker image and execute code interactively. Use many [configuration files](#config-files) to control language, tools, and setup instructions.
13
+
Build a reproducible data science environment as a container image and execute code interactively. Use many [configuration files](#config-files) to control language, tools, and setup instructions.
10
14
:::
11
15
:::{grid-item-card} 🚀 Deploy environments in JupyterHub or Binder
12
-
Push environment images to a Docker registry for re-use in data science environment services like [JupyterHub](https://jupyterhub.readthedocs.io) or [a Binder instance](https://mybinder.org), or for other communities to build upon your base environment.
16
+
Push environment images to a container registry for re-use in data science environment services like [JupyterHub](https://jupyterhub.readthedocs.io) or [a Binder instance](https://mybinder.org), or for other communities to build upon your base environment.
13
17
:::
14
18
:::{grid-item-card} ☁️ Host repositories in many providers
15
19
Host repositories in: a Git server like [GitHub](https://github.com/) or [GitLab](https://gitlab.com/), an open science repository like [Zenodo](https://zenodo.org) or [Figshare](https://figshare.com), a hosted data platform like a [Dataverse installation](https://dataverse.org/), an archive like the
@@ -19,7 +23,7 @@ Host repositories in: a Git server like [GitHub](https://github.com/) or [GitLab
19
23
20
24
## What is a user environment container image and why would I build one with `repo2docker`?
21
25
22
-
A **user environment container image** contains the entire software environment that a user may access from an interactive data science session. For example, it might contain many **programming languages**, **software for data analysis**, or even **content files and datasets** available to anybody that accesses that environment. Container images are built with [Docker](https://www.docker.com/), a standard open source tool for defining, building, and deploying images.
26
+
A **user environment container image** contains the entire software environment that a user may access from an interactive data science session. For example, it might contain many **programming languages**, **software for data analysis**, or even **content files and datasets** available to anybody that accesses that environment. Container images are built in accordance with the spectifications published by the [Open Container Initiative](https://opencontainers.org/).
23
27
24
28
Many data science platforms and services like [JupyterHub](https://jupyterhub.readthedocs.io) and [Binder](https://mybinder.org) launch interactive data science sessions **with a user environment container image attached**, meaning that the user gains access to whatever is in the container image. In short, this allows somebody to define and build the user image one time, in a way that users can reproducibly re-use many times.
25
29
@@ -43,9 +47,9 @@ repo2docker <source-repository>
43
47
It performs these steps:
44
48
45
49
1. Inspects the repository for [configuration files](#config-files). These will be used to build the environment needed to run the repository.
46
-
2. Builds a Docker image with an environment specified in these [configuration files](#config-files).
50
+
2. Builds a container image with an environment specified in these [configuration files](#config-files).
47
51
3. Runs the image to let you explore the repository interactively via Jupyter notebooks, RStudio, or many other interfaces (this is optional).
48
-
4. Pushes the images to a Docker registry so that it may be accessed remotely (this is optional).
52
+
4. Pushes the images to a container registry so that it may be accessed remotely (this is optional).
Copy file name to clipboardExpand all lines: docs/source/start.md
+48-23Lines changed: 48 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,47 +2,72 @@
2
2
3
3
This tutorial guides you through installing `repo2docker` and building your first environment image.
4
4
5
-
(install)=
5
+
## Prerequisite
6
6
7
-
##Install `repo2docker`
7
+
### Python
8
8
9
-
`repo2docker` requires Python 3.6 or above on Linux and macOS.
9
+
`repo2docker` requires Python 3.6 or above.
10
10
11
-
:::{admonition} Windows support is experimental
11
+
### Container Engine
12
12
13
-
This [article about using Windows and the WSL](https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly) (Windows Subsystem for Linux or
14
-
Bash on Windows) provides additional information about Windows and Docker.
15
-
:::
13
+
`repo2docker` requires a container engine compatible with the specification published by the [Open Container Initiative](https://opencontainers.org/).
16
14
17
-
###Prerequisite: Install Docker
15
+
####Docker
18
16
19
-
Install [Docker](https://www.docker.com), as it is required to build Docker images.
20
-
The [Community Edition](https://docs.docker.com/install/) is available for free.
17
+
```{important}
18
+
Only the [Docker Engine](https://docs.docker.com/engine/) is open source. [Docker Desktop](https://docs.docker.com/get-started/get-docker/) requires a license.
19
+
```
21
20
22
-
Recent versions of Docker are recommended.
21
+
Follow [Docker's official installation steps](https://docs.docker.com/get-started/get-docker/).
23
22
24
-
###Install `repo2docker` with `pip`
23
+
#### Podman
25
24
26
-
```{warning}
27
-
The name of the package on [PyPI](https://pypi.org/) is [`jupyter-repo2docker`](https://pypi.org/project/jupyter-repo2docker/) instead of `repo2docker`.
28
-
```
25
+
Follow [Podman's official installation steps](https://podman.io/docs/installation).
29
26
30
-
We recommend installing `repo2docker` with the `pip` tool:
27
+
After completing the installation of Podman,
31
28
32
-
```
29
+
1. create a [listening service for Podman](https://docs.podman.io/en/latest/markdown/podman-system-service.1.html) by running
30
+
31
+
```bash
32
+
systemctl --user start podman.socket
33
+
```
34
+
35
+
1. configure the `DOCKER_HOST` environment variable following [Podman's official procedure](https://podman-desktop.io/docs/migrating-from-docker/using-the-docker_host-environment-variable#procedure). You might want to configure the `DOCKER_HOST` environment variable to persist in your `~/.bashrc`.
36
+
37
+
(install)=
38
+
39
+
## Install `repo2docker`
40
+
41
+
### Install `repo2docker` with `pip`
42
+
43
+
It is recommend to install `repo2docker` with the `pip` tool:
44
+
45
+
```bash
33
46
python3 -m pip install jupyter-repo2docker
34
47
```
35
48
36
49
(usage)=
37
50
38
51
## Build a repository with `repo2docker`
39
52
40
-
Now that you've installed Docker and `repo2docker`, we can build a repository.
41
-
To do so, follow these steps.
53
+
Now that you've installed a container engine and `repo2docker`, you can build a repository.
54
+
To do so, continue following this guide.
55
+
56
+
### Start the container engine
42
57
43
-
### Start Docker
58
+
Ensure that the container engine is running.
44
59
45
-
Follow the [instructions for starting Docker](https://docs.docker.com/engine/daemon/start/) to start a Docker process.
60
+
#### Docker
61
+
62
+
Follow the [offcial instructions for starting Docker](https://docs.docker.com/engine/daemon/start/).
You'll see `repo2docker` take the following actions:
56
81
57
82
1. Inspect the repository for [configuration files](#config-files). It will detect the `requirements.txt` file in the repository.
58
-
2. Build a Docker image using the configuration files. In this case, the `requirements.txt` file will correspond to a Python environment.
83
+
2. Build a container image using the configuration files. In this case, the `requirements.txt` file will correspond to a Python environment.
59
84
3. Run the image to let you explore the repository interactively.
60
85
61
86
Click the link provided and you'll be taken to an interactive Jupyter Notebook interface where you can run commands interactively inside the environment.
62
87
63
88
## Learn more
64
89
65
90
This is a simple example building an environment image for your repository.
66
-
To learn more about the kinds of source repositories, environments, and use-cases that repo2docker supports, see [the `repo2docker` user guide](./use/index.md).
91
+
To learn more about the kinds of source repositories, environments, and use-cases that `repo2docker` supports, see [the `repo2docker` user guide](./use/index.md).
0 commit comments