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

Attempt to implement #332 - flattening layers #8600

Closed
wants to merge 1 commit into from

Conversation

vladia
Copy link

@vladia vladia commented Oct 16, 2014

Please review, it implements basic flattening of layers, suitable for improvements of build process.

Example of flattening, It builds a new temporary image with many layers using Dockerfile and then it creates a single-layer new image that is diff from parent to the temporary image and uses settings from it:

cat Dockerfile |
docker build --rm -t temporary:tag - &&
docker flatten parent:tag temporary:tag parent:newtag &&
docker rmi -f temporary:tag

@ncdc
Copy link
Contributor

ncdc commented Oct 16, 2014

You might want to take a look at #4232

@tiborvass
Copy link
Contributor

@vbatts and the other maintainers are currently working on a new image format that will support these advanced operations without destroying history of how the image was built. We can close this as it will be addressed in the new format.

@tiborvass tiborvass closed this Oct 23, 2014
@toddsampson
Copy link

@tiborvass Any links to information on the new format yet?

@tiborvass
Copy link
Contributor

@toddsampson There is ongoing work on distribution/distribution#62

Basically the problem is that user data and dependencies (think blob layers for the filesystem) are bundled together.

Separating the two will enable simple squashing of the blob dependencies possibly via API/CLI, without busting the build cache. I wonder whether we should store the history of a squashed layer in some metadata field (cc @jlhawn).

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

Successfully merging this pull request may close these issues.

4 participants