You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are transitioning our build system from Docker to Podman and have encountered an issue with layer caching during the podman push step. Here's an overview of our workflow:
Build Phase:
We perform a podman build inside a container.
The resulting image is saved as a tar file (podman save) and stored on an NFS share.
Publish Phase:
In a separate container, we copy the tar file from the NFS share and load it using podman load.
We then tag the image to a new remote version using podman tag.
Finally, we push the image to Artifactory using podman push.
This entire process runs inside Kubernetes pods. However, we've observed the following issue:
When we build and publish the same code again (with a different version), Podman re-uploads all layers, even if they are identical to the previous push.
With Docker, this issue does not occur. Docker performs a HEAD request to Artifactory to check for existing layers and skips uploading layers that already exist.
Questions:
Why is Podman not able to skip pushing common layers like Docker does?
Is there any specific configuration or flag we need to enable to make podman push behave like Docker with respect to caching layers?
Could this issue be related to our use of NFS for storing tar files, or how we are using podman save and podman load?
Are there any best practices for this kind of workflow in Podman to optimize caching and avoid redundant layer uploads?
Any insights, suggestions, or workarounds would be greatly appreciated.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello Podman Community,
We are transitioning our build system from Docker to Podman and have encountered an issue with layer caching during the podman push step. Here's an overview of our workflow:
Build Phase:
We perform a podman build inside a container.
The resulting image is saved as a tar file (podman save) and stored on an NFS share.
Publish Phase:
In a separate container, we copy the tar file from the NFS share and load it using podman load.
We then tag the image to a new remote version using podman tag.
Finally, we push the image to Artifactory using podman push.
This entire process runs inside Kubernetes pods. However, we've observed the following issue:
When we build and publish the same code again (with a different version), Podman re-uploads all layers, even if they are identical to the previous push.
With Docker, this issue does not occur. Docker performs a HEAD request to Artifactory to check for existing layers and skips uploading layers that already exist.
Questions:
Why is Podman not able to skip pushing common layers like Docker does?
Is there any specific configuration or flag we need to enable to make podman push behave like Docker with respect to caching layers?
Could this issue be related to our use of NFS for storing tar files, or how we are using podman save and podman load?
Are there any best practices for this kind of workflow in Podman to optimize caching and avoid redundant layer uploads?
Any insights, suggestions, or workarounds would be greatly appreciated.
Thank you in advance for your help!
Beta Was this translation helpful? Give feedback.
All reactions