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

Add support for multi-arch Docker images #5610

Closed
wants to merge 4 commits into from

Conversation

webvictim
Copy link
Contributor

Fixes #3384

This PR:

  • adds support for building arm and arm64 Docker images using processors with amd64 architecture
    • this is done using the binfmt_misc kernel extension which automatically detects the ELF 'magic' for binaries from other architectures and uses qemu-user-static to emulate the correct CPU and run them
  • adds support for multi-arch Docker manifests
    • essentially this means there is one image/tag name which has 3 different images behind it (amd64, arm and arm64)
    • the correct image for the host architecture will be picked by the Docker daemon when the image is pulled
  • tidies up buildbox and image Dockerfiles by sorting them more logically\
  • removes the separate FIPS Dockerfiles in favour of a multi-stage Docker build which optionally overrides the ENTRYPOINT for FIPS images (we were already using this for teleport-docker-cron)
  • removes separate release-arm and release-arm64 steps in favour of automatically deducing the correct arch from the supplied ARCH variable
    • this will cut down on boilerplate and make it a little easier to add support for more architectures in future

Still to come:

  • a separate PR for updating the nightly teleport-docker-cron images which are produced by Drone
    • the logic changes are quite complicated and I didn't want to overcomplicate this PR

@webvictim webvictim force-pushed the gus/docker-multiarch branch from 43b4f30 to 06062ae Compare February 18, 2021 14:59
@benarent
Copy link
Contributor

benarent commented Mar 2, 2021

This PR will be really helpful for a project I'm working on. Commenting with enthusiasm and to watch this PR

@benarent
Copy link
Contributor

Another thing I found out, when we publish the different version Quay provides this handy UI feature.

image

@webvictim
Copy link
Contributor Author

I'll try and have another look at this tomorrow.

@russjones
Copy link
Contributor

@webvictim We have not had a lot of progress on this, so I am going to close it for now. Please re-open if you want to work on this issue again.

@russjones russjones closed this Sep 1, 2021
@zmb3 zmb3 deleted the gus/docker-multiarch branch August 4, 2022 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Request: ARM container builds
3 participants