docker: allow grouping derivations into explicit layers #157670
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation for this change
Sometimes the heuristic used by
streamLayeredImage
to distribute the store paths to individual layers based on usage is not ideal. E.g. when usinggraalvm17-ce
that's a 1.7G, but it easily gets thrown into the last layer with a lot of other derivations. The last layer thereby grows very large and since it changes often it needs to be re-downloaded or pushed.This change allows more control over how layers should be assembled. You can specify an optional
explicitLayers
attribute, containing a list of lists of derivations, corresponding to a list of layers containing one or more derivations.E.g.
expliticLayers = [[hello] [fortune cowsay]]
specifies that, apart from the usual heuristic-based grouping,hello
should be put into one separate layer andfortune
andcowsay
should be put into another separate layer.Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)nixos/doc/manual/md-to-db.sh
to update generated release notes