-
Notifications
You must be signed in to change notification settings - Fork 293
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
Ephemeral builder tars are missing base image layers #925
Comments
For more info containers/podman#8132. |
This will block #564. |
Hi @matejvasek, thanks for the report. If it's what I'm thinking about, yes we are using an optimization hack specific to the docker daemon implementation. @ekcasey was the mastermind IIRC. The "simple fix" as mentioned by @mtrmac is something we've recently contemplated but will take a bit longer to implement in the way we've previously discussed it. We can investigate a little further and determine smaller changes to resolve the issue in a shorter timeframe. |
Yes this is a hack that we added to improve performance against the docker daemon. It is crucial that we keep this hack in place when using the docker daemon because the performance implications are enormous. We could likely make the hack configurable in |
@ekcasey You had run an experiment somewhere to see what those performance implications were, right? Any chance you could repost those? |
@dfreilich We did this a looong time ago (sometime in 2018) so suffice it to say I don't have original comparison data handy, but we can do some back of the envelope math. The time saved is the time it takes to For example, if I am creating an ephemeral builder with a single additional buildpack the "base image" is the original builder. It just took me 29.646s to |
@ekcasey started working on this but found a separate issue, reported by @abitrolly, that looks like might stem from the podman vs docker implementation. Are you able to look at the possible cause for podman not providing platform information as detailed in #966? |
@jromero |
Also 2.1 doesn't contain this fix of mine: containers/podman#8109. Could you please try build from master? |
|
Hmm the OS is empty string in response JSON. I'll try to fix that. |
@jromero After some digging I found out it's been fixed here containers/podman#8494. So |
Hi @matejvasek, just trying to button up everything here. Please reopen if I'm mistaken. EDIT: I misassociated where the fix would be coming from. In this particular case, it's not the lifecycle but instead the |
I don't know if it's still relevant to this issue but the hack can be made to work with Podman too. You just have to reference something in |
When creating ephemeral builder the
pack
binary uses hack optimization when creating tar stream. The tar pushed to repo is missing some layers, the layers are however already present as they are downloaded in advance so it's still somehow working. But that is not a valid format. This causes issues for instance forpodman
which has more strict validation.The text was updated successfully, but these errors were encountered: