You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the problem
Right now, you seem to have separate images for different architectures (and also the arm images only live on dockerhub?) This makes things annoying to use in multi-arch setups, because things have to be coded different to use different architectures, and, it makes things annoying for you because you wind up having to tag everything based on the architecture.
Instead, Docker containers can be built to support multiple architectures in the same image. Basically, they combine multiple images into one image, and the client only uses the image of the appropriate architecture. This is how your base docker image (currently golang 1.23) works, e.g.,
So you wouldn't have to deal with having to tag vouch-proxy:latest-arm or vouch-proxy:latest-amd (and all the thousand version variants) separately; you'd just have e.g., vouch-proxy:latest, and it would be a multi-arch image.
Additional context
In your build process, it's basically as simple as using
or as many different platforms as (say) the base image supports.
Edit: Interestingly, it seems your ARM image actually IS a multi-arch image that supports armv7 and armv8. Why not keep combining architectures together? :)
The text was updated successfully, but these errors were encountered:
@ellisonch Interesting! I'm not opposed to supporting an additional image such as vouch-proxy:latest-mulit-arch but in the spirit of "not changing userspace" or expected behavior I'd prefer to add a new image and keep the others as-is.
Describe the problem
Right now, you seem to have separate images for different architectures (and also the arm images only live on dockerhub?) This makes things annoying to use in multi-arch setups, because things have to be coded different to use different architectures, and, it makes things annoying for you because you wind up having to tag everything based on the architecture.
Instead, Docker containers can be built to support multiple architectures in the same image. Basically, they combine multiple images into one image, and the client only uses the image of the appropriate architecture. This is how your base docker image (currently
golang 1.23
) works, e.g.,So you wouldn't have to deal with having to tag
vouch-proxy:latest-arm
orvouch-proxy:latest-amd
(and all the thousand version variants) separately; you'd just have e.g.,vouch-proxy:latest
, and it would be a multi-arch image.Additional context
In your build process, it's basically as simple as using
or as many different platforms as (say) the base image supports.
Edit: Interestingly, it seems your ARM image actually IS a multi-arch image that supports armv7 and armv8. Why not keep combining architectures together? :)
The text was updated successfully, but these errors were encountered: