Haskell Official Docker Images now support arm64 (and other updates)

Hi all,

I am a maintainer of the official Haskell docker images. I have some updates!

Haskell docker images now support arm64

I am happy to announce that as of versions 8.10.7, 9.0.2 and 9.2.1 the official Debian images support arm64. As support is brand new, it should be considered somewhat experimental at this stage. Any form of feedback is greatly appreciated.

Note: The arm64 variants do not include stack. Stack has had some support of arm64 in the past, however this involves a manual release process and seems to now be defunct.

Faster updates to new GHC + cabal-install releases

Historically the Haskell images used Debian packaging to install GHC + cabal-install. Unfortunately this packaging was slow to update and caused the docker images to often be lacking the latest versions (and the Debian packaging now seems to be fully abandoned).

We now directly install from the GHC and cabal-install official releases so updates to new versions can occur without any delay!

More secure install

As part of moving towards a direct install, we have refreshed the release verification pattern used in the docker images to match the official images best practices.

Coming Soon

  • Alpine support is pretty much ready to go and should be released with GHC 9.2.2 as 9.2.1 appears to have issues on alpine. Note: this will not include arm64 until the official releases also include alpine arm64.
  • Windows support will be the next goal after that.

Cheers,
Alistair

11 Likes

Fantastic news about ARM images, thanks a lot! It’s now easy to setup an ARM CI for Haskell projects.

2 Likes

Hi Alistair!

Those are excellent updates! Thank you very much for writing about them on Discourse!

I am especially happy to hear that images with new versions of GHC and cabal-install will be released more quickly thanks to use of official releases instead of Debian packages. FYI: I maintain a docker-ghc project that I use to create local container images for testing new versions of GHC, such as release candidates. There are build scripts for manual installation as well as installation via ghcup. The key feature of this project is that it creates images that use a non-root user with the UID and GID of the host user so that the host filesystem can be mounted without having to deal with file ownership issues.

Cheers,
Travis

1 Like

Thanks!

Ah very cool nice images! It is really useful to see other Haskell docker images to learn new techniques.