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 arm builds to docker images #128

Open
holdenk opened this issue Sep 27, 2020 · 8 comments
Open

Add arm builds to docker images #128

holdenk opened this issue Sep 27, 2020 · 8 comments

Comments

@holdenk
Copy link
Contributor

holdenk commented Sep 27, 2020

It would be really useful if the default builds supported arm, docker buildx makes this a lot easier than it used to be.

@mrocklin mrocklin transferred this issue from dask/dask-kubernetes Sep 28, 2020
@mrocklin
Copy link
Member

cc @jacobtomlinson for when he gets back.

@holdenk I'm curious, how often do you see people using docker on arm for dask-like workloads today? I'm curious how much we should be prioritizing this.

@holdenk
Copy link
Contributor Author

holdenk commented Sep 28, 2020

I’m not sure, for my use case it’s for trying to use dask on kubernetes with Jetsons which are ARM based.

@jacobtomlinson
Copy link
Member

This sounds reasonable. As Dask is pure Python there is no reason why ARM shouldn't just work. Although it is worth noting that we are not currently testing against ARM.

We currently use the docker-compose build command to build our images via CI. It looks like we can use the new experimental docker buildx bake command to do the same for multiple architectures.

It looks like buildx is still experimental so may take some looking into.

@jacobtomlinson
Copy link
Member

@jacobtomlinson
Copy link
Member

Enabling building for ARM has been completed in #166 thanks to @holdenk!

In #149 we updated the CI/CD to use GitHub Actions to build and push our images.

Due to a limitation in buildx the upstream Jupyter Lab image needs to be built first, and then the Dask images built in a separate step. The build instructions in the README demonstrate pushing the interim image to a registry in order for it to be loaded back in.

This isn't possible during an unprivileged CI run as there are no credentials to push to a registry. To work around this we load the image into Docker and use the docker driver for building.

However the docker driver does not support building for ARM. So although it is possible to build these images for ARM we are not building and pushing them automatically currently via CI.

@holdenk do you have any suggestions on how we could work around this? Can the image cache be exported/imported in a different way? Or perhaps we need to set up some local temporary registry and push the interim image there?

@jacobtomlinson
Copy link
Member

I'm going to reopen this until we get CI builds running. If you have any thoughts @holdenk I'd be keen to hear as I'm a bit stuck.

@holdenk
Copy link
Contributor Author

holdenk commented Sep 24, 2021

Sure one option is using qemu to cross build in the CI. Let me see what I can figure out this weekend :)

@jmorenobl
Copy link

Hello!
Is there any progress on this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants