Skip to content

Commit

Permalink
Merge pull request #1309 from manics/upgrade-guide-ubuntu2204
Browse files Browse the repository at this point in the history
Add Ubuntu 22.04 upgrade guide
  • Loading branch information
yuvipanda authored Oct 15, 2023
2 parents 8c32db9 + 2ad8eeb commit de496f8
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 0 deletions.
2 changes: 2 additions & 0 deletions docs/source/config_files.rst
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,8 @@ To see an example repository visit
`nix binder example <https://github.com/binder-examples/nix>`_.


.. _dockerfile:

``Dockerfile`` - Advanced environments
======================================

Expand Down
26 changes: 26 additions & 0 deletions docs/source/howto/breaking_changes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Deal with breaking changes in repo2docker

Repo2docker occasionally has to make breaking changes in how repositories are built.

## Upgrade of base image from Ubuntu 18.04 to 22.04

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.

This is unlikely to affect you unless you are using {ref}`apt.txt <apt.txt>`.

{ref}`apt.txt <apt.txt>` installs packages from the official Ubuntu package repositories, and is intrinsically tied to the Ubuntu version.
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).

Some packages may be removed, or may not be compatible with the previous version.
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).

Alternatively you can try installing the packages from source, using a {ref}`postBuild <postBuild>` script.

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:

```dockerfile
FROM <registry>/<username>/<image>:<tag>
```

This image will contain a frozen version of your repository at the time the image was built.
You will need to rebuild and push it everytime your repository is modified.
1 change: 1 addition & 0 deletions docs/source/howto/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Select from the pages listed below to get started.
languages
export_environment
lab_workspaces
breaking_changes
jupyterhub_images
deploy
base_image

0 comments on commit de496f8

Please sign in to comment.