August 4, 2025
:depth: 2
:local:
Two container images have been renamed
Sciserver → Legacy 23.01 – the old stable image, kept for reproducibility.
Sciserver unstable → Sciserver – the new default image for all fresh sessions.
The default Python environment manager is now Mamba (a drop‑in, much faster replacement for Conda).
All images now point to the
conda‑forgechannel instead of the blocked Anaconda repository.Result: you can install virtually any package exactly as before, just use
mamba install <pkg>(orconda install <pkg>– both work).Dockerfile repository (semi-public) – All image Dockerfiles are stored at https://gitlab.mpcdf.mpg.de/sciserver/images. Access requires a valid GitLab account; if you have it you can inspect the exact build steps.
Why the change?
Reason |
Impact |
|---|---|
Anaconda repo blocked on the Garching campus |
Packages from the |
Shift to |
|
Mamba replaces Conda |
Faster dependency resolution, same syntax, fully compatible with existing Conda environments. |
Image rename |
Prevents confusion between the old stable image and the new default. The “Legacy 23.01” tag is kept for reproducibility. |
What you should do
Update any notebook or script that references the old image name – replace
SciserverwithLegacy 23.01(if you need the exact old environment) or with the newSciserverimage.Use
mambafor package installation (e.g.,mamba install numpy).condastill works, butmambais the recommended default.If you rely on a package that exists only on the Anaconda channel, obtain it from an alternative source (build from source, use a custom channel, or request it from the platform team).
For reproducibility – keep using the “Legacy 23.01” image for long‑term projects that must not change.
More Details
Item |
Old |
New |
|---|---|---|
Package manager |
|
|
Default channel |
|
|
Container image |
|
|
Channel for |
|
|
Because the Anaconda repo is no longer reachable from the campus network, any
environment.yaml that references defaults or anaconda will fail with:
Retrieving notices: ...working... ERROR conda.notices.fetch:get_channel_notice_response(63):
Request error <HTTPSConnectionPool(host='repo.anaconda.com', port=443):
Max retries exceeded with url: /pkgs/main/notices.json
(Caused by ProtocolError('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')))>
for channel: defaults url: https://repo.anaconda.com/pkgs/main/notices.json
ERROR conda.notices.fetch:get_channel_notice_response(63):
Request error <HTTPSConnectionPool(host='repo.anaconda.com', port=443):
Max retries exceeded with url: /pkgs/r/notices.json
(Caused by ProtocolError('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')))>
for channel: defaults url: https://repo.anaconda.com/pkgs/r/notices.json
Quick‑fix checklist
Using a previously created environment.yaml file
Replace the channel list – change every occurrence of
defaultsoranacondatoconda-forge.Swap
condaformamba– the syntax is identical, so you can keep the file unchanged; just runmamba env create -f environment.yaml.Validate package names – a few packages that existed only on the Anaconda channel have been renamed or moved (e.g.,
anaconda-client→conda-build). Theconda‑forgechannel will raise a clear “PackageNotFoundError” if something is missing.Re‑export the environment (optional) – after the environment builds successfully, run
conda env export --no-builds > environment‑converted.yamlto get a clean file for future use.
For additional Python‑specific environment management tips, see the Environment Management Tips page (
environment_management_tips.md).
Example conversion
Original environment.yaml (old image)
name: old‑analysis
channels:
- defaults
- conda-forge
dependencies:
- python=3.8
- numpy
- pandas
- anaconda::scikit-learn
- anaconda::jupyterlab
- pip:
- some‑private‑pkg
Converted environment.yaml (new image)
name: old‑analysis
channels:
- conda-forge # single channel is enough; conda‑forge contains defaults‑equivalents
dependencies:
- python=3.11 # the base image ships 3.11; you can pin 3.8 if required
- numpy
- pandas
- scikit-learn # now from conda‑forge
- jupyterlab
- pip:
- some‑private‑pkg
Create the environment inside a current Sciserver container
# inside the running JupyterLab pod (or any terminal with mamba)
mamba env create -f environment-converted.yaml
# activate
mamba activate old-analysis
Common pitfalls & how to troubleshoot
Symptom |
Likely cause |
Fix |
|---|---|---|
|
Package only existed on the Anaconda channel |
Search for the conda‑forge equivalent ( |
Environment creation hangs for >5 min |
Large dependency resolution with |
Ensure you are invoking |
|
Package installed in a different environment |
Verify you activated the newly created env ( |
Network timeout when pulling packages |
Institutional proxy not configured for the container |
Export proxy variables inside the container: |