docker-superset
docker-superset copied to clipboard
Add support of ARM architecture
I'm using your container definition on my raspberry Pi.
To doing this, I have change the base image of your Dockerfile from python
to arm32v7/python
.
Do you think is possible to add this modification on this repo ?
I don't know much about raspberry pi, but I have to think it would be a big challenge given the number of dependencies of this project. There could be some C-library incompatibilities off the top of my head.
I don't think that this support of ARM architecture will be a big challenge. Only one modification on Dockfile is needed on my side. But maybe i'm wrong.
I don't think I'd want to be responsible for maintaining something I don't fully understand (it's just me over here, I'm not affiliated with Superset). But what I could do is variable-ize the base image for each stage so you could build the image yourself with whatever base you wanted.
Ex:
docker build \
--build-arg FINAL_BASE=arm32v7/python \
--tag sadmin91/superset \
https://github.com/amancevice/docker-superset.git
Would that work for you?
The support issue of ARM is not about docker, the key point is that pyarrow has issue on ARM, and after Superset-0.34 pyarrow becomes a requirement of Superset. You can't solve this easily on the docker side. However, you can use some legacy version of Superset or docker of Superset on Raspbian, such as Superset 0.34.0. This version could run successfully on my Raspberrypi 4.
It looks like the pyarrow issue has been solved in superset: https://github.com/apache/superset/pull/14891
Given the increasing prevalence of ARM since this issue was opened (locally on M1s; Graviton on AWS, etc), it may be worth revisting this?
I’m happy to consider this but it will require setting up a bit of CI/CD infrastructure to build the images—AFAIK GitHub actions doesn’t support anything but x86
Actually, turns out Docker has some docs on doing this. I'll explore that a bit today
I saw arm here, it worked, but now again only amd... Any chances to get ARM?
Just merged a change to the GitHub release workflow to target both linux/amd64
and linux/arm64
when building/pushing.
closing this out as I think it is accomplished, feel free to re-open or file a new issue if you disagree