-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
podman push does not work, but docker push works on heroku registry #10309
Comments
It looks like we're attempting to push the image in OCI format, and the registry is replying with "unsupported". My guess is that the details it's giving (if it's giving any -- trying again with If you remove the image and rebuild it with the "BUILDAH_FORMAT" variable in your environment set to "docker", the built image should start out in Docker format, and if pushing that image succeeds, then we'll know for sure it's a matter of the "try pushing in a different format" logic not being triggered when it should be. |
|
i can confirm that it worked with BUILDAH_FORMAT=docker - thanks! |
Please report this as a bug to Heroku, that they should support OCI Images. |
We may also want to adjust something in the neighborhood of https://github.com/containers/image/blob/56ddc22a8b0b1cef6fc1c5f321285fbde7f4274b/docker/docker_image_dest.go#L473 to get the try-converting-it behavior we'd expect. |
If we get the unsupported error message on the push, could we possibly end the text with something like, "The registry believes the image is an unsupported type. Try rebuilding the image using --format=docker and retry the push. " We seem to keep hitting issues like this every few weeks. |
Under normal operation, the intent of the code is that if we can determine that a different format would be accepted by the registry, we should be trying an on-the-fly conversion automatically. If we can do that here, that's highly preferable to forcing users to rebuild their images. |
So should this be done via Podman or containers/image? |
That decision gets made in the image library's registry client logic, more or less boiling down to whether https://github.com/containers/image/blob/56ddc22a8b0b1cef6fc1c5f321285fbde7f4274b/docker/docker_image_dest.go#L449 returns |
Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
I visited a devops course and in the last lesson the teacher used docker to push an image to heroku's image registry and let this run. I wanted to use podman because they should be compatible. The docker push worked whereas the podman push did not.
Steps to reproduce the issue:
create a heroku account
checkout https://github.com/damnms/DevOpsPath
docker build -t zhaw-mosa/devopspath .
install or download heroku cli
copy /usr/bin/podman to /usr/bin/docker //otherwise heroku will complain...
heroku login
heroku container:login //guess this could be done with podman login too
heroku create --region eu
heroku container:push web or podman push registry.heroku.com/$THE_NAME_FROM_STEP8/web
Describe the results you received:
[oli@lucy DevOpsPath]$podman push registry.heroku.com/afternoon-garden-35911/web
Getting image source signatures
Copying blob 1e77dd81f9fa skipped: already exists
Copying blob 030309cad0ba skipped: already exists
Copying blob 557433955211 skipped: already exists
Copying blob 6f15325cc380 skipped: already exists
Copying blob ca85d5f63d9d skipped: already exists
Copying blob ae69bc9df648 skipped: already exists
Copying blob c6e64e7942e5 skipped: already exists
Copying blob 5f70bf18a086 skipped: already exists
Copying blob 8b10c0407caf skipped: already exists
Copying blob 9dcb91c9af71 [--------------------------------------] 0.0b / 0.0b
Copying config b18c874e7d [--------------------------------------] 0.0b / 5.5KiB
Writing manifest to image destination
Error: Error writing manifest "{"schemaVersion":2,"config":{"mediaType":"application/vnd.oci.image.config.v1+json","digest":"sha256:b18c874e7dc895c5e80ea8472e0f1d7ca6ebe818269641369f39c6b7ddb84a65","size":5591},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:2eab874737fe4c4a4996b2b12e8ac379bca8703588e63a54297279f3711f1a4d","size":27928748},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:8581af0d7e7379e3d92ac56384a0c197c9425fb360d5b00836e5337419a183ad","size":921},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:a6ff4aede508e7d435f63d6bbaafd8f5c6841ac4b136871530d0929d7546bc69","size":204},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:b3e208ec4920de022c3e222c74e79ae14084ee99d356d040b91d4659d6f93747","size":232527432},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:7a758745be8c71712555423328b627edf74355c6eabb0b6497023d78ff0d1437","size":86561314},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:16fe1e77ef1aae905e67bccbb479c2bb458357f7f6d391a7541a653e9cff9a0c","size":129519078},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:443602cc0ea7a4fd199f28fb1fb318308c154985acbd976561d57d7453ac1665","size":221448761},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:d49f5b603640d3acefdc4250d2d952ace07eead5b95b36e92d2c0a2afe852525","size":8380946},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:4ca545ee6d5db5c1170386eeb39b2ffe3bd46e5d4a73a9acbebc805f19607eb3","size":42},{"mediaType":"application/vnd.oci.image.layer.v1.tar+gzip","digest":"sha256:d4fc7d95db290624cfe1a353659b92289eb3a321d25ea4e8e5eafc6b2f34dc77","size":386801878}]}": Error uploading manifest latest to registry.heroku.com/afternoon-garden-35911/web: unsupported
Describe the results you expected:
when i run the same with docker, it works:
root@jitsii:/home/oli/DevOpsPath# docker push registry.heroku.com/guarded-springs-24685/web
Using default tag: latest
The push refers to repository [registry.heroku.com/guarded-springs-24685/web]
29064dc73b4e: Pushing [=====================> ] 190.3MB/438.2MB
d501667405ca: Layer already exists
48f22651fab0: Layer already exists
5de2531fb0cb: Pushing [=================> ] 201MB/583.8MB
5cf0446ac026: Layer already exists
5c35c950784e: Layer already exists
ae48844230f4: Pushing [=====================================> ] 149.7MB/198.9MB
ae69bc9df648: Pushing [====================> ] 160.5MB/387.6MB
6f15325cc380: Layer already exists
1e77dd81f9fa: Pushed
030309cad0ba: Pushing [================================================> ] 61.18MB/63.26MB
^C
Additional information you deem important (e.g. issue happens only occasionally):
i could imagine that this has something to do with authentication! when i use docker login, it creates a $HOME/.docker/config.json which i do not have when logging in with podman
Output of
podman version
:Output of
podman info --debug
:Package info (e.g. output of
rpm -q podman
orapt list podman
):Have you tested with the latest version of Podman and have you checked the Podman Troubleshooting Guide? (https://github.com/containers/podman/blob/master/troubleshooting.md)
Yes
Additional environment details (AWS, VirtualBox, physical, etc.):
i have a little server that has a docker install (debian 11) and my workstation (fedora 34).
therefore i created 2 heroku app-spaces, one is guarded springs and the other is the afternoon garden.
The text was updated successfully, but these errors were encountered: