Get better content addressed store support into OCI image spec #374288
Labels
6.topic: docker tools
significant
Novel ideas, large API changes, notable refactorings, issues with RFC potential, etc.
OCI image concepts tend to work reasonably well as a store for Nix-built software, but we are running into limitations:
Both of these follow from
docker build
's conceptual reliance on overlays, and by using OCI blobs as layers, we inherit these limitations for store paths.Fortunately, store paths do not require overlay semantics, so an extension of the image spec could resolve these issues, and enable other non-Nix use cases in the process.
Concretely what I'm thinking of is to extend the OCI image spec so that as a sibling to the
layers
property, it supportsmounts
, which are handled after the layers have been merged, by mounting layer blobs at the intended locations in the root file system.Backends could implement this by merging the layers as usual (in whichever way, as usual), and then doing the same for the mounts.
Things that need to be done
Don't make it Nix-specific, because it isn't.
All content-addressed stores (or similar) can be translated to mounts, and bypass the limitations of overlays and storage backends.
I don't believe this is an original idea, but I don't know who to credit.
My purpose for this issue is to promote the idea and serve as a crystallization point for those who are interested to get involved with this. (Personally I'm only tangentially involved with container stuff)
Other, discarded alternatives
Related
The text was updated successfully, but these errors were encountered: