diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 26fd7bd155..cabe7e595a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -119,17 +119,13 @@ jobs: - name: Setup push rights to Docker Hub # This was setup by... - # 1. Creating a Docker Hub service account "jupyterhubbot" - # 2. Creating a access token for the service account specific to this - # repository: https://hub.docker.com/settings/security - # 3. Making the account part of the "bots" team, and granting that team - # permissions to push to the relevant images: - # https://hub.docker.com/orgs/jupyterhub/teams/bots/permissions - # 4. Registering the username and token as a secret for this repo: - # https://github.com/jupyterhub/jupyterhub/settings/secrets/actions + # 1. Creating a [Robot Account](https://quay.io/organization/jupyterhub?tab=robots) in the JupyterHub + # . quay.io org + # 2. Giving it enough permissions to push to the jupyterhub and singleuser images + # 3. Putting the robot account's username and password in GitHub actions environment if: env.REGISTRY != 'localhost:5000/' run: | - docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" -p "${{ secrets.DOCKERHUB_TOKEN }}" + docker login -u "${{ secrets.QUAY_USERNAME }}" -p "${{ secrets.QUAY_PASSWORD }}" "${{ env.REGISTRY }}" # image: jupyterhub/jupyterhub # diff --git a/Dockerfile b/Dockerfile index 01bfda0032..286e97b2c7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ # # Option 1: # -# FROM jupyterhub/jupyterhub:latest +# FROM quay.io/jupyterhub/jupyterhub:latest # # And put your configuration file jupyterhub_config.py in /srv/jupyterhub/jupyterhub_config.py. # @@ -14,10 +14,10 @@ # # Or you can create your jupyterhub config and database on the host machine, and mount it with: # -# docker run -v $PWD:/srv/jupyterhub -t jupyterhub/jupyterhub +# docker run -v $PWD:/srv/jupyterhub -t quay.io/jupyterhub/jupyterhub # # NOTE -# If you base on jupyterhub/jupyterhub-onbuild +# If you base on quay.io/jupyterhub/jupyterhub-onbuild # your jupyterhub_config.py will be added automatically # from your docker directory. diff --git a/README.md b/README.md index dd97055da5..ceb7a548ed 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ [![Latest conda-forge version](https://img.shields.io/conda/vn/conda-forge/jupyterhub?logo=conda-forge)](https://anaconda.org/conda-forge/jupyterhub) [![Documentation build status](https://img.shields.io/readthedocs/jupyterhub?logo=read-the-docs)](https://jupyterhub.readthedocs.org/en/latest/) [![GitHub Workflow Status - Test](https://img.shields.io/github/workflow/status/jupyterhub/jupyterhub/Test?logo=github&label=tests)](https://github.com/jupyterhub/jupyterhub/actions) -[![DockerHub build status](https://img.shields.io/docker/build/jupyterhub/jupyterhub?logo=docker&label=build)](https://hub.docker.com/r/jupyterhub/jupyterhub/tags) +[![Docker Repository on Quay](https://quay.io/repository/jupyterhub/jupyterhub/status "Docker Repository on Quay")](https://quay.io/repository/jupyterhub/jupyterhub) [![Test coverage of code](https://codecov.io/gh/jupyterhub/jupyterhub/branch/main/graph/badge.svg)](https://codecov.io/gh/jupyterhub/jupyterhub) [![GitHub](https://img.shields.io/badge/issue_tracking-github-blue?logo=github)](https://github.com/jupyterhub/jupyterhub/issues) [![Discourse](https://img.shields.io/badge/help_forum-discourse-blue?logo=discourse)](https://discourse.jupyter.org/c/jupyterhub) @@ -160,10 +160,10 @@ To start the Hub on a specific url and port `10.0.1.2:443` with **https**: ## Docker -A starter [**docker image for JupyterHub**](https://hub.docker.com/r/jupyterhub/jupyterhub/) +A starter [**docker image for JupyterHub**](https://quay.io/repository/jupyterhub/jupyterhub) gives a baseline deployment of JupyterHub using Docker. -**Important:** This `jupyterhub/jupyterhub` image contains only the Hub itself, +**Important:** This `quay.io/jupyterhub/jupyterhub` image contains only the Hub itself, with no configuration. In general, one needs to make a derivative image, with at least a `jupyterhub_config.py` setting up an Authenticator and/or a Spawner. To run the single-user servers, which may be on the same system as the Hub or @@ -171,7 +171,7 @@ not, Jupyter Notebook version 4 or greater must be installed. The JupyterHub docker image can be started with the following command: - docker run -p 8000:8000 -d --name jupyterhub jupyterhub/jupyterhub jupyterhub + docker run -p 8000:8000 -d --name jupyterhub quay.io/jupyterhub/jupyterhub jupyterhub This command will create a container named `jupyterhub` that you can **stop and resume** with `docker stop/start`. diff --git a/demo-image/Dockerfile b/demo-image/Dockerfile index c5add75eb2..6ed786e8bb 100644 --- a/demo-image/Dockerfile +++ b/demo-image/Dockerfile @@ -3,7 +3,7 @@ # This should only be used for demo or testing and not as a base image to build on. # # It includes the notebook package and it uses the DummyAuthenticator and the SimpleLocalProcessSpawner. -ARG BASE_IMAGE=jupyterhub/jupyterhub-onbuild +ARG BASE_IMAGE=quay.io/jupyterhub/jupyterhub-onbuild FROM ${BASE_IMAGE} # Install the notebook package diff --git a/docs/source/faq/troubleshooting.md b/docs/source/faq/troubleshooting.md index 1af8315ce6..1446d841ea 100644 --- a/docs/source/faq/troubleshooting.md +++ b/docs/source/faq/troubleshooting.md @@ -46,13 +46,13 @@ things like inspect other users' servers or modify the user list at runtime). ### JupyterHub Docker container is not accessible at localhost Even though the command to start your Docker container exposes port 8000 -(`docker run -p 8000:8000 -d --name jupyterhub jupyterhub/jupyterhub jupyterhub`), +(`docker run -p 8000:8000 -d --name jupyterhub quay.io/jupyterhub/jupyterhub jupyterhub`), it is possible that the IP address itself is not accessible/visible. As a result, when you try http://localhost:8000 in your browser, you are unable to connect even though the container is running properly. One workaround is to explicitly tell Jupyterhub to start at `0.0.0.0` which is visible to everyone. Try this command: -`docker run -p 8000:8000 -d --name jupyterhub jupyterhub/jupyterhub jupyterhub --ip 0.0.0.0 --port 8000` +`docker run -p 8000:8000 -d --name jupyterhub quay.io/jupyterhub/jupyterhub jupyterhub --ip 0.0.0.0 --port 8000` ### How can I kill ports from JupyterHub-managed services that have been orphaned? @@ -347,12 +347,12 @@ In order to resolve this issue, there are two potential options. ### Where do I find Docker images and Dockerfiles related to JupyterHub? -Docker images can be found at the [JupyterHub organization on DockerHub](https://hub.docker.com/u/jupyterhub/). -The Docker image [jupyterhub/singleuser](https://hub.docker.com/r/jupyterhub/singleuser/) +Docker images can be found at the [JupyterHub organization on quay.io](https://quay.io/organization/jupyterhub). +The Docker image [jupyterhub/singleuser](https://quay.io/repository/jupyterhub/singleuser) provides an example single-user notebook server for use with DockerSpawner. Additional single-user notebook server images can be found at the [Jupyter -organization on DockerHub](https://hub.docker.com/r/jupyter/) and information +organization on quay.io](https://quay.io/organization/jupyter) and information about each image at the [jupyter/docker-stacks repo](https://github.com/jupyter/docker-stacks). ### How can I view the logs for JupyterHub or the user's Notebook servers when using the DockerSpawner? diff --git a/docs/source/howto/separate-proxy.md b/docs/source/howto/separate-proxy.md index 58deb298fd..084db4a10c 100644 --- a/docs/source/howto/separate-proxy.md +++ b/docs/source/howto/separate-proxy.md @@ -70,7 +70,7 @@ need to configure the options there. ## Docker image You can use [jupyterhub configurable-http-proxy docker -image](https://hub.docker.com/r/jupyterhub/configurable-http-proxy/) +image](https://quay.io/repository/jupyterhub/configurable-http-proxy) to run the proxy. ## See also diff --git a/docs/source/tutorial/quickstart-docker.md b/docs/source/tutorial/quickstart-docker.md index ef369e9fb5..d64c575446 100644 --- a/docs/source/tutorial/quickstart-docker.md +++ b/docs/source/tutorial/quickstart-docker.md @@ -1,9 +1,9 @@ # Install JupyterHub with Docker -The JupyterHub [docker image](https://hub.docker.com/r/jupyterhub/jupyterhub/) is the fastest way to set up Jupyterhub in your local development environment. +The JupyterHub [docker image](https://quay.io/repository/jupyterhub/jupyterhub) is the fastest way to set up Jupyterhub in your local development environment. :::{note} -This `jupyterhub/jupyterhub` docker image is only an image for running +This `quay.io/jupyterhub/jupyterhub` docker image is only an image for running the Hub service itself. It does not provide the other Jupyter components, such as Notebook installation, which are needed by the single-user servers. To run the single-user servers, which may be on the same system as the Hub or @@ -24,7 +24,7 @@ You should have [Docker] installed on a Linux/Unix based system. To pull the latest JupyterHub image and start the `jupyterhub` container, run this command in your terminal. ``` -docker run -d -p 8000:8000 --name jupyterhub jupyterhub/jupyterhub jupyterhub +docker run -d -p 8000:8000 --name jupyterhub quay.io/jupyterhub/jupyterhub jupyterhub ``` This command exposes the Jupyter container on port:8000. Navigate to `http://localhost:8000` in a web browser to access the JupyterHub console. diff --git a/examples/service-fastapi/Dockerfile b/examples/service-fastapi/Dockerfile index d2e8d5b562..1932f9e51f 100644 --- a/examples/service-fastapi/Dockerfile +++ b/examples/service-fastapi/Dockerfile @@ -1,9 +1,9 @@ -FROM jupyterhub/jupyterhub +FROM quay.io/jupyterhub/jupyterhub -# Create test user (PAM auth) and install single-user Jupyter +# Create test user (PAM auth) and install single-user Jupyter RUN useradd testuser --create-home --shell /bin/bash RUN echo 'testuser:passwd' | chpasswd -RUN pip install jupyter +RUN pip install jupyter COPY app ./app COPY jupyterhub_config.py . diff --git a/onbuild/Dockerfile b/onbuild/Dockerfile index 93655f4f4b..ec59da355d 100644 --- a/onbuild/Dockerfile +++ b/onbuild/Dockerfile @@ -4,7 +4,7 @@ # # Derivative images must have jupyterhub_config.py next to the Dockerfile. -ARG BASE_IMAGE=jupyterhub/jupyterhub:latest +ARG BASE_IMAGE=quay.io/jupyterhub/jupyterhub:latest FROM $BASE_IMAGE ONBUILD COPY jupyterhub_config.py /srv/jupyterhub/jupyterhub_config.py diff --git a/onbuild/README.md b/onbuild/README.md index e1d6696e22..0af0753ff7 100644 --- a/onbuild/README.md +++ b/onbuild/README.md @@ -2,7 +2,7 @@ If you base a Dockerfile on this image: - FROM jupyterhub/jupyterhub-onbuild:1.4.0 + FROM quay.io/jupyterhub/jupyterhub-onbuild:1.4.0 ... then your `jupyterhub_config.py` adjacent to your Dockerfile will be loaded into the image and used by JupyterHub. diff --git a/singleuser/Dockerfile b/singleuser/Dockerfile index ef7090ae90..3a47907287 100644 --- a/singleuser/Dockerfile +++ b/singleuser/Dockerfile @@ -1,7 +1,7 @@ # Build as jupyterhub/singleuser # Run with the DockerSpawner in JupyterHub -ARG BASE_IMAGE=jupyter/base-notebook +ARG BASE_IMAGE=quay.io/jupyter/base-notebook FROM $BASE_IMAGE MAINTAINER Project Jupyter