Choosing environments#

When you start the Cloud Hub, a choice of different images is offered as a drop-down menu. We maintain a “Reflective” image, which contains many common packages used for earth science (xarray, pangeo stack etc.), as well as some additions for working in the Cloud (e.g. arrraylake for working with zarr stores on Earthmover). This environment develops over time, so it’s possible that you will come back to old code and find it needs an old version of the environment to run. This is possible (see below). There are also several default images available: the “Pangeo” environment is a safe choice if you just want the geospatial stack, and “Scipy” is a more bare-bones environment.

Note that you can always temporarily install (or update) packages during a session using pip install.

Using Custom Images On the Hub#

Sometimes you may need to use a previous version of our environment due to updates to packages that may have broken your workflow. If you run into any unexpected issues with code that was previously working on the hub, you can use the previous environment. When starting the Hub, click the “Environment” drop down and scroll to the bottom. Click on “Bring your own image”. Then enter quay.io/2i2c/reflective-image:{IMAGE_TAG}. Grab the {IMAGE_TAG} from the table of images below. Make sure to that http:// isn’t included with the URL if you copy and paste it. If it is, just remove it. Start the hub, and you will be using the version of the image that you specify.

Reflective Image Tag History#

Each tag is a git commit SHA from reflective-org/reflective-image. Dates are the source commit dates; newest first.

Tag

Usable

Published

Size

Changes vs. previous image

52b0ccfd1fca

Jul 30, 2026

2.7 GiB

Pinned pyopenssl >= 24 to fix issues connecting to aws S3 buckets; added and pinned arraylake==1.2.0; (#6)

5ba270bf5081

Jul 23, 2026

2.7 GiB

Added .gitignore; pinned upgrades beyond pangeo-notebook base: xarray==2026.7.0, zarr==3.2.1, icechunk==2.1.1; added issue-creds (credential issuing) (#5)

5cb60c85bbb0

Mar 13, 2026

3.0 GiB

s3fs fix: aligned S3 stack via pip (s3fs, fsspec, boto3, botocore); added cdo and nco (#4)

31aa6abf39c9

Feb 24, 2026

2.8 GiB

AI integration fix: postBuild now actually runs during image build, so VS Code extensions are truly installed (previous tag only echoed the install command); installs run as notebook user with --force (#3)

5757ed417852

Feb 24, 2026

2.4 GiB

Added AI tooling: jupyter-ai[all] via pip; added openai.chatgpt and anthropic.claude-code VS Code extensions to install list (#2)

7bb4358204a5

Jan 30, 2026

1.9 GiB

Added VS Code support: code-server>=4.0, jupyter-vscode-proxy, jupyter-server-proxy; new postBuild (ms-python, svelte extensions — echo only, not installed) and start script setting VSCODE_PROXY_URI (#1)

bafdf91292d2

Oct 8, 2025

1.8 GiB

Removed version pins in environment.yml: jupyterhub-singleuser and nbgitpuller now unpinned (commit)

31d6a9045cb1

Oct 8, 2025

1.9 GiB

Removed image-tests copy from Dockerfile; oldest tag still in the registry (commit)