Skip to content
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

multiarch support for Docker official image #3203

Closed
vielmetti opened this Issue Sep 21, 2017 · 11 comments

Comments

Projects
None yet
7 participants
@vielmetti
Copy link

vielmetti commented Sep 21, 2017

Docker now has support for transparently providing multi-architecture builds for official images. The mquery tool at https://github.com/estesp/mquery gives one way to query current status, and the source code for mquery gives an example of using a CI system to produce this.

I'd like Prometheus to provide a Docker image that works on as many supported architectures as possible, including and especially arm64.

What did you do?

$ docker run --rm mplatform/mquery prom/prometheus
Manifest List: No
 Supports: amd64/linux

What did you expect to see?

Multi-architecture support with a "fat manifest" pointing to all supported Prometheus binaries from official image.

What did you see instead? Under which circumstances?

Only amd64 support in official image.

@alexellis

This comment has been minimized.

Copy link

alexellis commented Sep 21, 2017

There is already a 64-bit ARM Prometheus binary release, so this should be relatively straight-forward - i.e. placing that binary into a container and adding the default configuration.

In terms of the "multi-arch" images - this is done through a manifest file which contains a map of named images and what architecture they are for. The first part is more important than this one, but both would be great.

@vaibhavsood

This comment has been minimized.

Copy link

vaibhavsood commented Sep 28, 2017

+1 for ppc64le. prometheus has a ppc64le binary as well so that be included too. I'm willing to help out with any ppc64le changes that may be needed to support an official ppc64le Docker image

@vielmetti

This comment has been minimized.

Copy link
Author

vielmetti commented Sep 28, 2017

Attn @tianon who may be able to provide some guidance as to how to do this the easiest way.

@tianon

This comment has been minimized.

Copy link

tianon commented Sep 28, 2017

With the official images, we try very hard to keep our multiarch images building all architectures from a single Dockerfile (to keep the added maintenance burden of supporting additional architectures lower, and to help ensure we keep parity).

As for actually pushing them with a manifest list (so that, for example, docker run prometheus/prometheus works properly on more than one architecture), you'll need to push the bits somewhere in the target registry, then use something like https://github.com/estesp/manifest-tool to combine them into a single tag with the appropriate metadata (especially adding variant, in the case of arm).

For the official images, we use a separate namespace per architecture (https://github.com/docker-library/official-images#architectures-other-than-amd64), but I know at least the LinuxKit folks simply use separate tags per architecture in the same repository (https://hub.docker.com/r/linuxkit/kernel/tags/).

@sdurrheimer

This comment has been minimized.

Copy link
Member

sdurrheimer commented Sep 29, 2017

I need to take a look at this and see how we can integrate it in our build process.

@vielmetti

This comment has been minimized.

Copy link
Author

vielmetti commented Sep 30, 2017

Thanks @sdurrheimer - would it make more sense to open an issue in https://github.com/prometheus/promu to track it there?

@vielmetti

This comment has been minimized.

Copy link
Author

vielmetti commented Jan 4, 2018

#3619 looks like a related issue.

@alexellis

This comment has been minimized.

Copy link

alexellis commented Jan 4, 2018

Ping on thread. The community really needs this - other key projects are adopting multi-arch but I'm having to maintain custom hacks and images to work with Prometheus. Can we help you in some way with this for the greater good?

@grobie

This comment has been minimized.

Copy link
Member

grobie commented Jan 4, 2018

I understand a PR for promu would be the next step.

@vielmetti

This comment has been minimized.

Copy link
Author

vielmetti commented Jan 4, 2018

Closing this issue here, in favor of the issue (and hopefully forthcoming PR) in promu.

@vielmetti vielmetti closed this Jan 4, 2018

@lock

This comment has been minimized.

Copy link

lock bot commented Mar 23, 2019

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@lock lock bot locked and limited conversation to collaborators Mar 23, 2019

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.