question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Support referencing base images from a manifest list

See original GitHub issue

Follow-on to #1547 (and #1360), users should be able to identify a platform for base image from a manifest list. Manifest lists are a mechanism for aggregating and serving platform-specific images from a registry. The list specifies manifests with a set of annotations for os, architecture, os.version, os.features, variant (cpu), and features (cpu).

There’s a nice article describing use of manifest lists. The Docker CLI support an experimental --platform argument for specifying os/arch/variant combinations.

A related question is support for creating and pushing manifest lists — including perhaps being able to reference images built by jib within the reactor.

  • when fixing this bug, remember to remove/update the FAQ entry

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:7 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
chanseokohcommented, Nov 14, 2019

I know pulling a manifest (not manifest list) by a digest works, but rather, my question was more about the following:

But pulling a manifest list by a digest doesn’t work. Is it the use of a digest that makes this difference? That is, unlike using a tag, a registry doesn’t assume amd/linux by default?

That is, pulling a manifest list by a tag has been working, but pulling the very same manifest list by a digest doesn’t work. And I think I now know why. Based on this comment, I guess it is the intention that a digest for a manifest list (e.g., the reference in #1360) won’t work in the same way as it does when using a tag (e.g., openjdk:latest).

0reactions
chanseokohcommented, Aug 11, 2020

Newer Jib versions now have an incubating feature to select a base image matching a user-configured platform from a manifest list. For usage, refer to the FAQ “How do I specify a platform in the manifest list (or OCI index) of a base image?”.

As an incubating feature, there are limitations. For example, pushing a manifest list (in other words, selecting multiple base images) is not supported and being tracked by #2523.

Closing.

Read more comments on GitHub >

github_iconTop Results From Across the Web

docker manifest - Docker Documentation
A manifest list is a list of image layers that is created by specifying one or more (ideally more than one) image names....
Read more >
Pushing a multi-architecture image - Amazon ECR
List the images in your repository, confirming the image tags. Create the Docker manifest list. The manifest create command verifies that the referenced...
Read more >
Multi-architecture images in your Azure container registry
A manifest is a JSON file that uniquely identifies the image, referencing its layers and their corresponding sizes.
Read more >
Create and use multi-architecture Docker images
Manifest list – Groups multiple images; can be thought of as a list of pointers; must exist on a Docker registry. Reference –...
Read more >
Build Containers the Hard Way - GitBook
Manifests can also come in list format for some images. These would have a media type like application/vnd.docker.distribution.manifest.list.v2+json . These ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found