jupyter / jupyter/docker-stacks

Support a workflow for extending the base environment in a reproducible fashion

Open
#2,292 9 comments 0 reactions 0 assignees View on GitHub
type:Enhancement
Dominant language
Python
Stars
8.5k
Forks
3k
Avg merge
20h 6m
Merged PRs (30d)
9

Description

### What docker image(s) is this feature applicable to?

minimal-notebook

### What change(s) are you proposing?

Currently, the `base` conda environment is not extensible in a reproducible fashion. Users who need to install additional packages in it have no good workflow for e.g. maintaining a conda-lock lockfile for a custom `base` env that has as one input file the packages that their docker-stacks base image installs in it, and has another input file containing their additional customizations.

### How does this affect the user?

Users have to suffer with longer Docker build times due to not being able to bypass the solver (shout out to https://github.com/conda/conda/issues/8372 defeating https://conda.github.io/conda-lock/pip/ and https://conda.github.io/conda-lock/output/#explicit-lockfile) and builds that may create a non-reproducible `base` env.

### Anything else?

Thanks for maintaining docker-stacks!

Contributor guide

Open the contributing guide

Research direction

Start with the minimal-notebook image's build inputs and the workflow for its base conda environment; the issue does not name specific files or tests. Establish how a custom base environment can consume the image's packages and user additions reproducibly, with lockfile-based builds that avoid unnecessary solver work.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
build-system, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.