Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ubuntu 22.04 upgrade guide #1309

Merged
merged 3 commits into from
Oct 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't actually tried this but I presume it works!


```dockerfile
FROM <registry>/<username>/<image>:<tag>
```
manics marked this conversation as resolved.
Show resolved Hide resolved

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