Uploaded image for project: 'Artifactory Binary Repository'
  1. Artifactory Binary Repository
  2. RTFACT-13975

Artifactory does not support manifest lists (fat manifests)

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: 5.0.0, 5.1.4
    • Fix Version/s: 6.5.1
    • Component/s: Docker
    • Labels:
      None

      Description

      Artifactory does not support manifest lists (fat manifests).

      The spec for the Image Manifest V2, Schema 2 introduced the concept of a manifest list (multi-architecture images). A manifest list can be used to, among other things, specify different tags of the same image depending on the OS. This works by first deploying the images/tags and then deploying a manifest list that makes reference to those images. Artifactory does not accept these manifest lists whereas Dockerhub does.

      To reproduce:

      Failure to proxy

      1. Set up Artifactory 5.1.4 with a remote Docker registry to DockerHub
      2. Try to pull estesp/busybox
      3. Observe the failure to properly read the manifest file

      Failure on upload:

      1. Set up Artifactory 5.1.4 with a local Docker registry
      2. Pull busybox
      3. Tag busybox to reference Artifactory (<URL>/busybox:amd)
      4. Tag busybox again with a different tag (<URL>/busybox:intel)
      5. Push the images to Artifactory
      6. Set up and build this project (https://github.com/estesp/manifest-tool)
      7. Create a YAML file that outlines the manifest list (for example)

      image: <URL>/busybox:latest
      manifests:
        -
          image: <URL>/busybox:amd
          platform:
            architecture: amd64
            os: linux
        -
          image: <URL>/busybox:intel
          platform:
            architecture: intel
            features:
              - sse
            os: linux
      

      8. Push the image list, for example:

      ./manifest-tool --username admin --password password push from-spec myspec.yml
      

      9. Observe the failure
      10. Repeat the procedure on Dockerhub and notice that it succeeds

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                saffih Saffi Hartal (Inactive)
                Reporter:
                arturoa Arturo Aparicio
                Assigned QA:
                Matan Katz
              • Votes:
                7 Vote for this issue
                Watchers:
                14 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: