-
Notifications
You must be signed in to change notification settings - Fork 954
Refactor Dockerfiles to better support ARM #1575
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
Conversation
Pushed a image for temporal-server and auto-setup to: https://gallery.ecr.aws/l2s6p1l5/ductone-temporal-multiarch
|
The reason why we have those base images is because we want build to have as less "remote" dependencies as possible. We can't avoid docker hub but that should be it. All Can you fix it? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@alexshtin The current structure in master makes it difficult for anyone without permission to push to temporalio's dockerhub account to actually iterate on the images, so I think I found a middle step: I changed the Dockerfile to take the base images as an Additionally, I made a new This MR even if merged, will need someone with Dockerhub permissions to push new base images, and then make a separate PR with new versions. Is this OK? |
f75e77f
to
1be9468
Compare
Thanks for fixing this, Paul. I like the approach. I want to make few renames though. Don't have time for it right now, but will get back by the end of the week. |
Paul, can you give me write permission to your fork? I don't want to open new PR and would like to contribute to this one. I have changes ready, just need to push them. |
@alexshtin done |
Tried to test it locally today and got error. Was able to scope it down to the
and build it with:
and got:
Just I am on |
The example Dockerfile you showed works for me:
I'd guess its a problem with your arm64 builder for buildx -- maybe try this docker run to see if your qemu is working right:
|
I am not able to run this on my
which totally makes sense for me. |
If you install qemu, eg |
Apparently there was some problems with my docker. I cleaned up few things and it started to work. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have a plan for testing arm builds in buildkite? It would be great if we didn't have to test this manually.
We don't have any automation for base images right now. Buildkite, probably, is not a best tool for this. Our CI needs to be updated to support ARM builds. This is a next step though. For now I just tested it manually. |
What changed?
ARG
for base docker images for easier debug/test.base-builder
andbase-ci-builder
. The later has some tools which are not available on ARM yet and required only by CI builds.base-builder
has very minimum required to build production version and has full ARM support.git clone
. Worth looking at a replacement or removal, but this preserves the existing use ofdockerize
templates for now.Makefile
targets to build withdocker buildx
.docker/base-images/README.md
.Build
base-server
for both arm64 and x86 container images with this command:or
Why?
Ability to run Temporal on AWS Graivton2 instances.
How did you test it?
Build locally for different platforms.
Potential risks
Might brake x86 docker images.
Is hotfix candidate?
No.