podman: podman push to aws manifest failure

Description Podman push to authenticated aws registry fails.

Steps to reproduce the issue:

  1. login to aws registery with podman

  2. create and tag image

  3. docker push <aws register>/image tag:latest

Describe the results you received: podman push foobar.dkr.ecr.us-east-1.amazonaws.com/helloworld:latest Getting image source signatures Copying blob sha256:f972d139738dfcd1519fd2461815651336ee25a8b54c358834c50af094bb262f 199.14 MB / 199.14 MB [==================================================] 1m0s Copying blob sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef 1024 B / 1024 B [==========================================================] 1s Copying config sha256:e83afaabb1f41afb22d7638022ad561cb3cb69f6e014eecafb9664f9e04fb1e5 0 B / 1.21 KB [------------------------------------------------------------] 0s Writing manifest to image destination Error copying image to the remote destination: Error writing manifest: Error uploading manifest latest to foobar.dkr.ecr.us-east-1.amazonaws.com/helloworld: unsupported: Invalid parameter at ‘ImageManifest’ failed to satisfy constraint: ‘Invalid JSON syntax’

Describe the results you expected: Successful upload of image and manifest

Additional information you deem important (e.g. issue happens only occasionally): AWS is expecting a different json format (https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_PutImage.html) “imageManifest”: “string”,

podman is sending ImageManifest and errors

Output of podman version:

podman version
Version:       0.10.1.3
Go Version:    go1.10.4
OS/Arch:       linux/amd64

Output of podman info:

podman info
host:
  BuildahVersion: 1.5-dev
  Conmon:
    package: podman-0.10.1.3-1.gitdb08685.fc28.x86_64
    path: /usr/libexec/podman/conmon
    version: 'conmon version 1.12.0-dev, commit: 4a03e555ee4105308fa4d814d4ce02a059af0b7f-dirty'
  Distribution:
    distribution: fedora
    version: "28"
  MemFree: 215162880
  MemTotal: 8235417600
  OCIRuntime:
    package: runc-1.0.0-56.dev.git78ef28e.fc28.x86_64
    path: /usr/bin/runc
    version: 'runc version spec: 1.0.1-dev'
  SwapFree: 3918188544
  SwapTotal: 3997167616
  arch: amd64
  cpus: 4
  hostname: mhoffman.localdomain
  kernel: 4.18.14-200.fc28.x86_64
  os: linux
  uptime: 24h 12m 32.99s (Approximately 1.00 days)
insecure registries:
  registries: []
registries:
  registries:
  - docker.io
  - registry.fedoraproject.org
  - quay.io
  - registry.access.redhat.com
  - registry.centos.org
store:
  ContainerStore:
    number: 5
  GraphDriverName: vfs
  GraphOptions: []
  GraphRoot: /home/mhoffman/.local/share/containers/storage
  GraphStatus: {}
  ImageStore:
    number: 2
  RunRoot: /run/user/1000/run

Additional environment details (AWS, VirtualBox, physical, etc.): AWS

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 2
  • Comments: 29 (6 by maintainers)

Most upvoted comments

Thanks for your report.

AWS is expecting a different json format (https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_PutImage.html) “imageManifest”: “string”,

podman is not calling that API directly, though it does seem quite possible that the underlying implementation of the registry calls it.

As a random guess, can you try this with podman push --format=v2s2 …, please?

If that fails, mkdir $sometmpdir; podman push foobar.dkr.ecr.us-east-1.amazonaws.com/helloworld:latest dir:$sometmpdir and attach $sometmpdir/manifest.json, please — though it seems extremely unlikely that the JSON is actually syntactically invalid.


Either way, the output of podman --log-level=debug push … could be useful as well.