Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

delta between two docker images and patching it #5522

Open
nx2804 opened this issue Oct 9, 2024 · 1 comment
Open

delta between two docker images and patching it #5522

nx2804 opened this issue Oct 9, 2024 · 1 comment

Comments

@nx2804
Copy link

nx2804 commented Oct 9, 2024

Description

Hi Team,

We wanted to generate a delta between two version images and ship only the incremental changes to customer instead of whole new version image which is huge in size. so we need delta generation and patching mechanism for docker images. We tried with general binary diffing and patching tools. but that doesnt solve this problem since every image is stored as a blob in docker when we use docker save . so the delta generated is huge in size and other problem is docker save modifies the sha values when we save the same image multiple times

Kindly add this a new feature request

Thanks

@thaJeztah
Copy link
Member

Yes, this is a known limitation of the layer-based diffs for situations where a large number of files are part of the same layer (but potentially only few of those changed)

You may be interested looking at some of the optional containerd snapshotters; I think the nydus snapshotter (and related tools) allow converting images to a more optimized format to provide deltas https://github.com/containerd/nydus-snapshotter?tab=readme-ov-file

There's also some prior art from balena to generate binary deltas (but not sure if that's compatible with regular runtimes); https://blog.balena.io/why-linux-containers-matter-for-the-internet-of-things/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants