Skip to content

Commit 00a6728

Browse files
authored
Move from Docker Hub to quay.io (#2010)
* Move from Docker Hub to quay.io * Fix http->https * Update registry-overviews * Remove Docker Hub name
1 parent 3e04ded commit 00a6728

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+113
-118
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ body:
5757
What complete docker command do you run to launch the container (omitting sensitive values)?
5858
placeholder: |
5959
Example:
60-
`docker run -it --rm -p 8888:8888 docker.io/jupyter/base-notebook`
60+
`docker run -it --rm -p 8888:8888 quay.io/jupyter/base-notebook`
6161
validations:
6262
required: true
6363

.github/workflows/docker-build-test-upload.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Download parent image, build a new one and test it; then upload the image, tags and manifests to GitHub artifacts
22

33
env:
4-
REGISTRY: docker.io
4+
REGISTRY: quay.io
55
OWNER: ${{ github.repository_owner }}
66

77
on:

.github/workflows/docker-merge-tags.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ jobs:
5151
if: env.PUSH_TO_REGISTRY
5252
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
5353
with:
54+
registry: quay.io
5455
username: ${{ secrets.REGISTRY_USERNAME }}
5556
password: ${{ secrets.REGISTRY_TOKEN }}
5657

.github/workflows/docker-tag-push.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Download Docker image and its tags from GitHub artifacts, apply them and push the image to the Registry
22

33
env:
4-
REGISTRY: docker.io
4+
REGISTRY: quay.io
55
OWNER: ${{ github.repository_owner }}
66
PUSH_TO_REGISTRY: (github.repository_owner == 'jupyter' || github.repository_owner == 'mathbunnyru') && (github.ref == 'refs/heads/main' || github.event_name == 'schedule')
77

@@ -41,6 +41,7 @@ jobs:
4141
if: env.PUSH_TO_REGISTRY
4242
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
4343
with:
44+
registry: quay.io
4445
username: ${{ secrets.REGISTRY_USERNAME }}
4546
password: ${{ secrets.REGISTRY_TOKEN }}
4647

.github/workflows/docker.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,8 @@ jobs:
248248
platform: aarch64
249249
image: ${{ matrix.image }}
250250
secrets:
251-
REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
252-
REGISTRY_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
251+
REGISTRY_USERNAME: ${{ secrets.QUAY_USERNAME }}
252+
REGISTRY_TOKEN: ${{ secrets.QUAY_ROBOT_TOKEN }}
253253
strategy:
254254
matrix:
255255
image:
@@ -286,8 +286,8 @@ jobs:
286286
platform: x86_64
287287
image: ${{ matrix.image }}
288288
secrets:
289-
REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
290-
REGISTRY_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
289+
REGISTRY_USERNAME: ${{ secrets.QUAY_USERNAME }}
290+
REGISTRY_TOKEN: ${{ secrets.QUAY_ROBOT_TOKEN }}
291291
strategy:
292292
matrix:
293293
image:
@@ -322,8 +322,8 @@ jobs:
322322
with:
323323
image: ${{ matrix.image }}
324324
secrets:
325-
REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
326-
REGISTRY_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
325+
REGISTRY_USERNAME: ${{ secrets.QUAY_USERNAME }}
326+
REGISTRY_TOKEN: ${{ secrets.QUAY_ROBOT_TOKEN }}
327327
strategy:
328328
matrix:
329329
image:

.github/workflows/registry-overviews.yml

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ on:
1616
jobs:
1717
update-overview:
1818
runs-on: ubuntu-latest
19-
name: update-overview (${{matrix.image}})
2019
if: github.repository_owner == 'jupyter' || github.repository_owner == 'mathbunnyru'
2120

2221
steps:
@@ -26,34 +25,24 @@ jobs:
2625
- name: Push README to Registry 🐳
2726
uses: christian-korneck/update-container-description-action@d36005551adeaba9698d8d67a296bd16fa91f8e8 # v1
2827
env:
29-
DOCKER_USER: ${{ secrets.DOCKERHUB_USERNAME }}
30-
DOCKER_PASS: ${{ secrets.DOCKERHUB_TOKEN }}
28+
DOCKER_APIKEY: ${{ secrets.APIKEY__QUAY_IO }}
3129
with:
32-
destination_container_repo: ${{ env.OWNER }}/${{ matrix.image }}
33-
provider: dockerhub
34-
short_description: ${{ matrix.description }}
30+
destination_container_repo: quay.io/${{ env.OWNER }}/${{ matrix.image }}
31+
provider: quay
3532
readme_file: images/${{ matrix.image }}/README.md
3633

3734
strategy:
3835
matrix:
39-
include:
40-
- image: docker-stacks-foundation
41-
description: "Tiny base image on which Jupyter apps can be built from https://github.com/jupyter/docker-stacks"
42-
- image: base-notebook
43-
description: "Base image for Jupyter Notebook stacks from https://github.com/jupyter/docker-stacks"
44-
- image: minimal-notebook
45-
description: "Minimal Jupyter Notebook Python Stack from https://github.com/jupyter/docker-stacks"
46-
- image: scipy-notebook
47-
description: "Scientific Jupyter Notebook Python Stack from https://github.com/jupyter/docker-stacks"
48-
- image: r-notebook
49-
description: "R Jupyter Notebook Stack from https://github.com/jupyter/docker-stacks"
50-
- image: julia-notebook
51-
description: "Julia Jupyter Notebook Stack from https://github.com/jupyter/docker-stacks"
52-
- image: tensorflow-notebook
53-
description: "Scientific Jupyter Notebook Python Stack w/ TensorFlow from https://github.com/jupyter/docker-stacks"
54-
- image: datascience-notebook
55-
description: "Data Science Jupyter Notebook Python Stack from https://github.com/jupyter/docker-stacks"
56-
- image: pyspark-notebook
57-
description: "Python and Spark Jupyter Notebook Stack from https://github.com/jupyter/docker-stacks"
58-
- image: all-spark-notebook
59-
description: "Python, Scala, R and Spark Jupyter Notebook Stack from https://github.com/jupyter/docker-stacks"
36+
image:
37+
[
38+
docker-stacks-foundation,
39+
base-notebook,
40+
minimal-notebook,
41+
scipy-notebook,
42+
r-notebook,
43+
julia-notebook,
44+
tensorflow-notebook,
45+
datascience-notebook,
46+
pyspark-notebook,
47+
all-spark-notebook,
48+
]

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Use bash for inline if-statements in arch_patch target
66
SHELL:=bash
7-
REGISTRY?=docker.io
7+
REGISTRY?=quay.io
88
OWNER?=jupyter
99

1010
# Need to list the images in build dependency order

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[![Discourse badge](https://img.shields.io/discourse/users.svg?color=%23f37626&server=https%3A%2F%2Fdiscourse.jupyter.org)](https://discourse.jupyter.org/ "Jupyter Discourse Forum")
88
[![Binder badge](https://static.mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter/docker-stacks/main?urlpath=lab/tree/README.ipynb "Launch a jupyter/base-notebook container on mybinder.org")
99

10-
Jupyter Docker Stacks are a set of ready-to-run [Docker images](https://hub.docker.com/u/jupyter) containing Jupyter applications and interactive computing tools.
10+
Jupyter Docker Stacks are a set of ready-to-run [Docker images](https://quay.io/organization/jupyter) containing Jupyter applications and interactive computing tools.
1111
You can use a stack image to do any of the following (and more):
1212

1313
- Start a personal Jupyter Server with the JupyterLab frontend (default)
@@ -27,11 +27,11 @@ The [User Guide on ReadTheDocs](https://jupyter-docker-stacks.readthedocs.io/en/
2727

2828
### Example 1
2929

30-
This command pulls the `jupyter/scipy-notebook` image tagged `2023-09-25` from Docker Hub if it is not already present on the local host.
30+
This command pulls the `jupyter/scipy-notebook` image tagged `2023-09-25` from Quay.io if it is not already present on the local host.
3131
It then starts a container running a Jupyter Server with the JupyterLab frontend and exposes the container's internal port `8888` to port `10000` of the host machine:
3232

3333
```bash
34-
docker run -p 10000:8888 docker.io/jupyter/scipy-notebook:2023-09-25
34+
docker run -p 10000:8888 quay.io/jupyter/scipy-notebook:2023-09-25
3535
```
3636

3737
You can modify the port on which the container's port is exposed by [changing the value of the `-p` option](https://docs.docker.com/engine/reference/run/#expose-incoming-ports) to `-p 8888:8888`.
@@ -46,11 +46,11 @@ The container remains intact for restart after the Server exits.
4646

4747
### Example 2
4848

49-
This command pulls the `jupyter/datascience-notebook` image tagged `2023-09-25` from Docker Hub if it is not already present on the local host.
49+
This command pulls the `jupyter/datascience-notebook` image tagged `2023-09-25` from Quay.io if it is not already present on the local host.
5050
It then starts an _ephemeral_ container running a Jupyter Server with the JupyterLab frontend and exposes the server on host port 10000.
5151

5252
```bash
53-
docker run -it --rm -p 10000:8888 -v "${PWD}":/home/jovyan/work docker.io/jupyter/datascience-notebook:2023-09-25
53+
docker run -it --rm -p 10000:8888 -v "${PWD}":/home/jovyan/work quay.io/jupyter/datascience-notebook:2023-09-25
5454
```
5555

5656
The use of the `-v` flag in the command mounts the current working directory on the host (`${PWD}` in the example command) as `/home/jovyan/work` in the container.
@@ -113,7 +113,7 @@ more information is available in the [documentation](https://jupyter-docker-stac
113113
- [Issue Tracker on GitHub](https://github.com/jupyter/docker-stacks/issues)
114114
- [Jupyter Discourse Forum](https://discourse.jupyter.org/)
115115
- [Jupyter Website](https://jupyter.org)
116-
- [Images on Docker Hub](https://hub.docker.com/u/jupyter)
116+
- [Images on Quay.io](https://quay.io/organization/jupyter)
117117

118118
## CPU Architectures
119119

binder/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Copyright (c) Jupyter Development Team.
22
# Distributed under the terms of the Modified BSD License.
33

4-
# https://hub.docker.com/r/jupyter/base-notebook/tags
5-
ARG REGISTRY=docker.io
4+
# https://quay.io/repository/jupyter/base-notebook?tab=tags
5+
ARG REGISTRY=quay.io
66
ARG OWNER=jupyter
77
ARG BASE_CONTAINER=$REGISTRY/$OWNER/base-notebook:2023-09-25
88
FROM $BASE_CONTAINER

docs/contributing/stacks.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Following these steps will:
88

99
1. Set up a project on GitHub containing a Dockerfile based on any image we provide.
1010
2. Configure GitHub Actions to build and test your image when users submit pull requests to your repository.
11-
3. Configure Docker Hub to host your images for others to use.
11+
3. Configure Quay.io to host your images for others to use.
1212
4. Update the [list of community stacks](../using/selecting.md#community-stacks) in this documentation to include your image.
1313

1414
This approach mirrors how we build and share the core stack images.
@@ -35,8 +35,8 @@ This will serve as both the git repository name and the part of the Docker image
3535
stack_name [my-jupyter-stack]:
3636
```
3737

38-
Enter the user or organization name under which this stack will reside on Docker Hub.
39-
You must have access to manage this Docker Hub organization to push images here.
38+
Enter the user or organization name under which this stack will reside on Quay.io.
39+
You must have access to manage this Quay.io organization to push images here.
4040

4141
```text
4242
stack_org [my-project]:
@@ -89,6 +89,10 @@ git push -u origin main
8989

9090
## Configuring Docker Hub
9191

92+
```{note}
93+
Jupyter Docker Stacks are hosted on Quay.io, but in this example, we show you how to host your image on Docker Hub.
94+
```
95+
9296
Now, configure Docker Hub to build your stack image and push it to the Docker Hub repository whenever
9397
you merge a GitHub pull request to the main branch of your project.
9498

docs/maintaining/tasks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ When there's a new stack definition, check before merging the PR:
5656

5757
## Adding a New Maintainer Account
5858

59-
1. Visit <https://hub.docker.com/orgs/jupyter/teams/stacks/members>
59+
1. Visit <https://quay.io/organization/jupyter/teams/owners>
6060
2. Add the maintainer's username.
6161
3. Visit <https://github.com/orgs/jupyter/teams/docker-image-maintainers/members>
6262
4. Add the maintainer's GitHub username.

docs/using/common.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ You can pass [Jupyter Server options](https://jupyter-server.readthedocs.io/en/l
1515
you can run the following (this hash was generated for the `my-password` password):
1616

1717
```bash
18-
docker run -it --rm -p 8888:8888 docker.io/jupyter/base-notebook \
18+
docker run -it --rm -p 8888:8888 quay.io/jupyter/base-notebook \
1919
start-notebook.py --PasswordIdentityProvider.hashed_password='argon2:$argon2id$v=19$m=10240,t=10,p=8$JdAN3fe9J45NvK/EPuGCvA$O/tbxglbwRpOFuBNTYrymAEH6370Q2z+eS1eF4GM6Do'
2020
```
2121

2222
2. To set the [base URL](https://jupyter-server.readthedocs.io/en/latest/operators/public-server.html#running-the-notebook-with-a-customized-url-prefix) of the Jupyter Server, you can run the following:
2323

2424
```bash
25-
docker run -it --rm -p 8888:8888 docker.io/jupyter/base-notebook \
25+
docker run -it --rm -p 8888:8888 quay.io/jupyter/base-notebook \
2626
start-notebook.py --ServerApp.base_url=/customized/url/prefix/
2727
```
2828

@@ -49,7 +49,7 @@ You do so by passing arguments to the `docker run` command.
4949
-e NB_USER="my-username" \
5050
-e CHOWN_HOME=yes \
5151
-w "/home/my-username" \
52-
docker.io/jupyter/base-notebook
52+
quay.io/jupyter/base-notebook
5353
```
5454

5555
- `-e NB_UID=<numeric uid>` - Instructs the startup script to switch the numeric user ID of `${NB_USER}` to the given value.
@@ -146,7 +146,7 @@ For example, to mount a host folder containing a `notebook.key` and `notebook.cr
146146
```bash
147147
docker run -it --rm -p 8888:8888 \
148148
-v /some/host/folder:/etc/ssl/notebook \
149-
docker.io/jupyter/base-notebook \
149+
quay.io/jupyter/base-notebook \
150150
start-notebook.py \
151151
--ServerApp.keyfile=/etc/ssl/notebook/notebook.key \
152152
--ServerApp.certfile=/etc/ssl/notebook/notebook.crt
@@ -158,7 +158,7 @@ For example:
158158
```bash
159159
docker run -it --rm -p 8888:8888 \
160160
-v /some/host/folder/notebook.pem:/etc/ssl/notebook.pem \
161-
docker.io/jupyter/base-notebook \
161+
quay.io/jupyter/base-notebook \
162162
start-notebook.py \
163163
--ServerApp.certfile=/etc/ssl/notebook.pem
164164
```
@@ -207,14 +207,14 @@ Example:
207207
docker run -it --rm \
208208
-p 8888:8888 \
209209
-e DOCKER_STACKS_JUPYTER_CMD=notebook \
210-
docker.io/jupyter/base-notebook
210+
quay.io/jupyter/base-notebook
211211
# Executing the command: jupyter notebook ...
212212

213213
# Use Jupyter NBClassic frontend
214214
docker run -it --rm \
215215
-p 8888:8888 \
216216
-e DOCKER_STACKS_JUPYTER_CMD=nbclassic \
217-
docker.io/jupyter/base-notebook
217+
quay.io/jupyter/base-notebook
218218
# Executing the command: jupyter nbclassic ...
219219
```
220220

@@ -225,7 +225,7 @@ The `start.sh` script supports all the features described above but allows you t
225225
For example, to run the text-based `ipython` console in a container, do the following:
226226

227227
```bash
228-
docker run -it --rm docker.io/jupyter/base-notebook start.sh ipython
228+
docker run -it --rm quay.io/jupyter/base-notebook start.sh ipython
229229
```
230230

231231
This script is handy when you derive a new Dockerfile from this image and install additional Jupyter applications with subcommands like `jupyter console`, `jupyter kernelgateway`, etc.

docs/using/recipe_code/custom_environment.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
# Name your environment and choose the python version
44
ARG env_name=python310

docs/using/recipe_code/dask_jupyterlab.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
# Install the Dask dashboard
44
RUN mamba install --yes 'dask-labextension' && \

docs/using/recipe_code/jupyterhub_version.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
RUN mamba install --yes 'jupyterhub==4.0.1' && \
44
mamba clean --all -f -y && \

docs/using/recipe_code/mamba_install.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
RUN mamba install --yes 'flake8' && \
44
mamba clean --all -f -y && \

docs/using/recipe_code/manpage_install.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
# Fix: https://github.com/hadolint/hadolint/wiki/DL4006
44
# Fix: https://github.com/koalaman/shellcheck/wiki/SC3014

docs/using/recipe_code/microsoft_odbc.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
# Fix: https://github.com/hadolint/hadolint/wiki/DL4006
44
# Fix: https://github.com/koalaman/shellcheck/wiki/SC3014

docs/using/recipe_code/oracledb.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
USER root
44

docs/using/recipe_code/pip_install.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
# Install in the default python3 environment
44
RUN pip install --no-cache-dir 'flake8' && \

docs/using/recipe_code/rise_jupyterlab.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
RUN mamba install --yes 'jupyterlab_rise' && \
44
mamba clean --all -f -y && \

docs/using/recipe_code/spellcheck_notebookv6.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook:notebook-6.5.4
1+
FROM quay.io/jupyter/base-notebook:notebook-6.5.4
22

33
RUN pip install --no-cache-dir 'jupyter_contrib_nbextensions' && \
44
jupyter contrib nbextension install --user && \

docs/using/recipe_code/xgboost.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/jupyter/base-notebook
1+
FROM quay.io/jupyter/base-notebook
22

33
RUN mamba install --yes 'py-xgboost' && \
44
mamba clean --all -f -y && \

0 commit comments

Comments
 (0)