Skip to content

Commit de496f8

Browse files
authored
Merge pull request #1309 from manics/upgrade-guide-ubuntu2204
Add Ubuntu 22.04 upgrade guide
2 parents 8c32db9 + 2ad8eeb commit de496f8

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

docs/source/config_files.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,8 @@ To see an example repository visit
233233
`nix binder example <https://github.com/binder-examples/nix>`_.
234234

235235

236+
.. _dockerfile:
237+
236238
``Dockerfile`` - Advanced environments
237239
======================================
238240

docs/source/howto/breaking_changes.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Deal with breaking changes in repo2docker
2+
3+
Repo2docker occasionally has to make breaking changes in how repositories are built.
4+
5+
## Upgrade of base image from Ubuntu 18.04 to 22.04
6+
7+
The base image used by repo2docker was [upgraded from Ubuntu 18.04 to Ubuntu 22.04](https://github.com/jupyterhub/repo2docker/pull/1287) in version 2023.10.0 due to Ubuntu 18.04 going out of support.
8+
9+
This is unlikely to affect you unless you are using {ref}`apt.txt <apt.txt>`.
10+
11+
{ref}`apt.txt <apt.txt>` installs packages from the official Ubuntu package repositories, and is intrinsically tied to the Ubuntu version.
12+
Many packages will be available in both Ubuntu 18.04 and Ubuntu 22.04, however some may be renamed (for example if multiple incompatible versions are available).
13+
14+
Some packages may be removed, or may not be compatible with the previous version.
15+
In this case you should see if your packages can be installed using a {ref}`Conda environment.yml file <environment.yml>` using either the default [conda-forge channel](https://conda-forge.org/feedstock-outputs/) or in one of the many [third-party channels](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html).
16+
17+
Alternatively you can try installing the packages from source, using a {ref}`postBuild <postBuild>` script.
18+
19+
As a last resort you can install an older version of repo2docker locally, build your image, push it to a public container registry such as [Docker Hub](https://hub.docker.com/), [GitHub Container Registry](https://docs.github.com/en/packages/guides/about-github-container-registry) or [quay.io](https://quay.io/), and replace your repository's repo2docker configuration with a minimal {ref}`Dockerfile <dockerfile>` containing just:
20+
21+
```dockerfile
22+
FROM <registry>/<username>/<image>:<tag>
23+
```
24+
25+
This image will contain a frozen version of your repository at the time the image was built.
26+
You will need to rebuild and push it everytime your repository is modified.

docs/source/howto/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Select from the pages listed below to get started.
1313
languages
1414
export_environment
1515
lab_workspaces
16+
breaking_changes
1617
jupyterhub_images
1718
deploy
1819
base_image

0 commit comments

Comments
 (0)