IHaskell / learn-you-a-haskell-notebook

Jupyter adaptation of Learn You a Haskell for Great Good!
Other
294 stars 48 forks source link

Implicit assumption of AMD64 arch? #20

Open hhy06 opened 1 year ago

hhy06 commented 1 year ago

I ran

docker run --rm -p 8888:8888 -v $PWD/notebook:/home/jovyan/work --name learn-you-a-haskell ghcr.io/ihaskell/ihaskell-notebook:master jupyter lab --ServerApp.token='' on my raspberry pi and got an error saying

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm/v7) and no specific platform was requested I assume there is not an ARM version?

jamesdbrock commented 1 year ago

Yes that's right.

You could try building your own aarm64 image.

Following the ihaskell-notebook https://github.com/IHaskell/ihaskell-notebook#composition-with-docker-stacks instructions, replace the base image with an aarch64 image, like for example this one. https://hub.docker.com/layers/jupyter/base-notebook/aarch64-ubuntu-22.04/images/sha256-56aab9a157a244510659d77caf4e3353257e96f41d247a17352215873359f5a1?context=explore

You would also need the aarch64 version of Stack https://github.com/IHaskell/ihaskell-notebook/blob/02cb8e017fad78608447b3edaae67b45862041a9/Dockerfile#L69

So the docker build command for that would be

docker build --build-arg BASE_CONTAINER=jupyter/base-notebook:aarch64-ubuntu-22.04
STACK_BINDIST=stack-2.11.1-linux-aarch64.tar.gz --rm --force-rm -t ihaskell_notebook_aarm64:latest .

Then use the resulting image to read Learn You A Haskell

docker run --rm -p 8888:8888 -v $PWD/notebook:/home/jovyan/work --name learn-you-a-haskell ihaskell_notebook_aarm64:latest jupyter lab --ServerApp.token=''

I've never tried this so I don't know if it would work. I think it might work. Maybe I should try running this on the Github CI.

jamesdbrock commented 1 year ago

References

https://github.com/commercialhaskell/stack/releases

https://hub.docker.com/r/jupyter/base-notebook/tags/