From 8f0d763ec426cb52758a6b5ddddbcdc507a03545 Mon Sep 17 00:00:00 2001 From: Simon Li Date: Sun, 8 Oct 2023 15:46:22 +0100 Subject: [PATCH 1/3] Add Ubuntu 22.04 upgrade guide --- docs/source/howto/breaking_changes.md | 23 +++++++++++++++++++++++ docs/source/howto/index.rst | 1 + 2 files changed, 24 insertions(+) create mode 100644 docs/source/howto/breaking_changes.md diff --git a/docs/source/howto/breaking_changes.md b/docs/source/howto/breaking_changes.md new file mode 100644 index 000000000..035f05511 --- /dev/null +++ b/docs/source/howto/breaking_changes.md @@ -0,0 +1,23 @@ +# 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 `. + +{ref}`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 ` 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 ` 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 `Dockerfile` containing just. + +```dockerfile +FROM //: +``` diff --git a/docs/source/howto/index.rst b/docs/source/howto/index.rst index 426837edd..12ce3595c 100644 --- a/docs/source/howto/index.rst +++ b/docs/source/howto/index.rst @@ -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 From 94a0043883f825f9e38449517e51ac877cefb14d Mon Sep 17 00:00:00 2001 From: Simon Li Date: Sun, 8 Oct 2023 15:52:46 +0100 Subject: [PATCH 2/3] upgrade: Link dockerfile --- docs/source/config_files.rst | 2 ++ docs/source/howto/breaking_changes.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/config_files.rst b/docs/source/config_files.rst index eabbdb56b..88392eb84 100644 --- a/docs/source/config_files.rst +++ b/docs/source/config_files.rst @@ -233,6 +233,8 @@ To see an example repository visit `nix binder example `_. +.. _dockerfile: + ``Dockerfile`` - Advanced environments ====================================== diff --git a/docs/source/howto/breaking_changes.md b/docs/source/howto/breaking_changes.md index 035f05511..7b16ea3f5 100644 --- a/docs/source/howto/breaking_changes.md +++ b/docs/source/howto/breaking_changes.md @@ -16,7 +16,7 @@ In this case you should see if your packages can be installed using a {ref}`Cond Alternatively you can try installing the packages from source, using a {ref}`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 `Dockerfile` containing just. +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 ` containing just: ```dockerfile FROM //: From 2ad8eebd418d5c755da2ab49e9debb88bdb514a6 Mon Sep 17 00:00:00 2001 From: Simon Li Date: Fri, 13 Oct 2023 00:14:25 +0100 Subject: [PATCH 3/3] ubuntu 18.04: warn about r2d build being frozen in time --- docs/source/howto/breaking_changes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/source/howto/breaking_changes.md b/docs/source/howto/breaking_changes.md index 7b16ea3f5..80ab1ed09 100644 --- a/docs/source/howto/breaking_changes.md +++ b/docs/source/howto/breaking_changes.md @@ -21,3 +21,6 @@ As a last resort you can install an older version of repo2docker locally, build ```dockerfile FROM //: ``` + +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.