You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue outlines how the RAPIDS end-user images in the docker repo will be overhauled to improve functionality and performance.
Images
Requirements
These are the requirements for all images produced by this repo.
Must use multi-architectural images that publish amd64 and aarch64/arm64 images to the same docker repository
a. This eliminates the arm64 variant repositories such as https://hub.docker.com/r/rapidsai/rapidsai-core-arm64
Must install all conda package into the base conda environment
Default user must be non-root user named rapids
Must define the WORKDIR as the rapids user's home directory
Must use a tag in the format: ${RAPIDS_VER}-cuda${CUDA_VER}-py${PYTHON_VER}
a. Nightly builds will append a to the RAPIDS_VER (eg 23.08a)
Must support the current matrix of CUDA and Python versions (currently defined here)
Considerations
Consider defining any dependencies not inherited from RAPIDS libraries in a dependencies.yaml consumable by dependency-file-generator
a. If there aren't many, might be simpler to directly install them (eg mamba install rapids ipython)
Consider implementing sudoers allowing the rapids user to sudo
Base image
This image is the basic docker image that installs the RAPIDS suite of libraries.
Building the base and notebooks images should utilize a multi-stage docker build.
Stage 1
Clone RAPIDS repositories for the current branch
Generate conda environment files for each repositories' "notebook" dependencies
Merge the conda environment files
Collect the notebooks directory of each RAPIDS repository and associated datasets if required
Stage 2
Build the base image defined above
Stage 3
Pull the merged conda environment file from Stage 1
Copy the notebooks directories from Stage 1
Build the notebooks image defined above using the merged conda environment file for dependencies
Testing
Base image
The base image will be tested using basic RAPIDS smoke tests being developed in their respective repositories. The full suite of unit tests will not be run.
Notebooks image
The notebooks image will be tested using the "notebook tests" which basically executes the notebooks provided by each repositories (consolidated in the notebooks repo).
These are the breaking changes that will occur when v23.06 of this docker repository is released:
rapidsai/rapidsai-core is deprecated and superceded by rapidsai/base and rapidsai/notebooks
"Runtime" images (eg rapidsai/rapidsai:23.02-cuda11.8-runtime-ubuntu22.04-py3.10) are replaced by the rapidsai/notebooks docker repo
IMAGE_TYPE & LINUX_VER will be removed from image tags. Change ${RAPIDS_VER}-cuda${CUDA_VER}-${IMAGE_TYPE}-${LINUX_VER}-py${PYTHON_VER} to ${RAPIDS_VER}-cuda${CUDA_VER}-py${PYTHON_VER}
arm64 image repositories (eg rapidsai/rapidsai-arm64) are deprecated and superceded by multi-architectural images in rapidsai/base and rapidsai/notebooks
Images will not longer default to the root user. Instead they will use non-root user rapids
a. To use previous behavior, supply --user root to the docker run command
The base image will start an ipython REPL instead of a bash shell
a. To use previous behavior, supply a docker runCMD of bash (eg docker run -it ${IMAGE} bash)
The notebooks image will start jupyter-lab in the foreground instead of running in the background and starting a bash shell.
a. To use previous behavior, supply a docker runCMD of bash (eg docker run -it ${IMAGE} bash) and run jupyter-lab in the background
The notebooks directory in the notebooks image will not longer contain the full source code git clone of RAPIDS repositories
a. To use previous behavior, start the container and git clone ${RAPIDS_GIT_URL} for each required RAPIDS repository
The rapids conda environment is removed and replaced by the base conda environment
The environment variables EXTRA_APT_PACKAGES & EXTRA_YUM_PACKAGES will not longer be supported.
LINUX_VER will be removed from the image tags. The Ubuntu version is implied by the CUDA version.
The notebooks directory is moved from /rapids/notebooks to /home/rapids/notebooks
centos7 & rockylinux8 OSes are dropped.
a. Users can manually build the images with these OSes by supplying --build-arg LINUX_VER=centos7, but this not tested/supported
Nightly images are no longer uploaded to a separate docker repo. They are uploaded to rapidsai/base and rapidsai-notebooks with an alpha tag for the RAPIDS_VER (eg 23.08a).
dockerrepo (RAPIDS end-user images) overhaulThis issue outlines how the RAPIDS end-user images in the
dockerrepo will be overhauled to improve functionality and performance.Images
Requirements
These are the requirements for all images produced by this repo.
amd64andaarch64/arm64images to the same docker repositorya. This eliminates the
arm64variant repositories such as https://hub.docker.com/r/rapidsai/rapidsai-core-arm64baseconda environmentrootuser namedrapidsWORKDIRas therapidsuser's home directory${RAPIDS_VER}-cuda${CUDA_VER}-py${PYTHON_VER}a. Nightly builds will append
ato theRAPIDS_VER(eg23.08a)Considerations
dependencies.yamlconsumable bydependency-file-generatora. If there aren't many, might be simpler to directly install them (eg
mamba install rapids ipython)sudoersallowing therapidsuser tosudoBase image
This image is the basic docker image that installs the RAPIDS suite of libraries.
Requirements
FROMrapidsai/mambaforge-cudaCMDto launch anipythonREPLrapidsmeta packagedask/distributed/dask-sqlnightly conda builds for nightly image buildsipythondependencyrapidsai/baseNotebooks image
This image extends the base image to include Jupyter and RAPIDS notebooks.
Requirements
FROMthe base image define aboveCMDto launch (in the foreground) a jupyter serverWORKDIRrapidsai/notebooksImplementation
Building the base and notebooks images should utilize a multi-stage docker build.
Stage 1
notebooksdirectory of each RAPIDS repository and associated datasets if requiredStage 2
Stage 3
Testing
Base image
The base image will be tested using basic RAPIDS smoke tests being developed in their respective repositories. The full suite of unit tests will not be run.
Notebooks image
The notebooks image will be tested using the "notebook tests" which basically executes the notebooks provided by each repositories (consolidated in the
notebooksrepo).It will be necessary to standardize the mechanism for testing each notebook and for exempting a notebook from testing.
cugraphprovides a reliable way for doing this: https://github.com/rapidsai/cugraph/blob/branch-23.04/ci/notebook_list.py.Breaking changes
These are the breaking changes that will occur when v23.06 of this
dockerrepository is released:rapidsai/rapidsai-coreis deprecated and superceded byrapidsai/baseandrapidsai/notebooksrapidsai/rapidsai:23.02-cuda11.8-runtime-ubuntu22.04-py3.10) are replaced by therapidsai/notebooksdocker repoIMAGE_TYPE&LINUX_VERwill be removed from image tags. Change${RAPIDS_VER}-cuda${CUDA_VER}-${IMAGE_TYPE}-${LINUX_VER}-py${PYTHON_VER}to${RAPIDS_VER}-cuda${CUDA_VER}-py${PYTHON_VER}arm64image repositories (egrapidsai/rapidsai-arm64) are deprecated and superceded by multi-architectural images inrapidsai/baseandrapidsai/notebooksrootuser. Instead they will use non-root userrapidsa. To use previous behavior, supply
--user rootto thedocker runcommandbaseimage will start anipythonREPL instead of abashshella. To use previous behavior, supply a
docker runCMDofbash(egdocker run -it ${IMAGE} bash)notebooksimage will startjupyter-labin the foreground instead of running in the background and starting abashshell.a. To use previous behavior, supply a
docker runCMDofbash(egdocker run -it ${IMAGE} bash) and runjupyter-labin the backgroundnotebooksimage will not longer contain the full source code git clone of RAPIDS repositoriesa. To use previous behavior, start the container and
git clone ${RAPIDS_GIT_URL}for each required RAPIDS repositoryrapidsconda environment is removed and replaced by thebaseconda environmentEXTRA_APT_PACKAGES&EXTRA_YUM_PACKAGESwill not longer be supported.LINUX_VERwill be removed from the image tags. The Ubuntu version is implied by the CUDA version./rapids/notebooksto/home/rapids/notebookscentos7&rockylinux8OSes are dropped.a. Users can manually build the images with these OSes by supplying
--build-arg LINUX_VER=centos7, but this not tested/supportedrapidsai/baseandrapidsai-notebookswith analphatag for theRAPIDS_VER(eg23.08a).Deprecated docker repositories
These docker repositories will be deprecated:
nightlyandarm64repos are folded into therapidsai/base&rapidsai/notebooksrepos. Thedev/develrepos are replaced by devcontainers.rapidsai/rapidsai-coreis replaced byrapidsai/baserapidsai/rapidsaiis replaced byrapidsai/notebooks