GHC musl
The multi‑arch (linux/amd64
, linux/arm64/v8
) docker image used to build the
statically linked Linux amd64 and arm64 binary releases of
Credits to
-
@odidev for
ghc-bootstrap-aarch64
and - @neosimsim for docker-builder-images
who laid the groundwork for this.
Table of Contents
Prerequisites
This project requires an installation of docker.
Install
To install docker, follow the instructions for your platform:
- Install Docker Engine | Docker Documentation > Supported platforms
- Post-installation steps for Linux
Usage
Build image
latest:
docker build \
--build-arg GHC_VERSION=9.8.1 \
--build-arg CABAL_VERSION=3.10.2.1 \
--build-arg STACK_VERSION=2.13.1 \
-t ghc-musl \
-f latest.Dockerfile .
version:
docker build \
-t ghc-musl:MAJOR.MINOR.PATCH \
-f prior/MAJOR.MINOR.PATCH.Dockerfile .
For MAJOR.MINOR.PATCH
GHC versions 8.8.4
, 8.10.1
and ≥ 8.10.4
.
👉 See the Version Matrix for detailed information.
Run container
self built:
docker run --rm -ti ghc-musl[:MAJOR.MINOR.PATCH]
from the project's GitLab Container Registry:
docker run --rm -ti glcr.b-data.ch/ghc/ghc-musl[:MAJOR[.MINOR[.PATCH]]]
As of 2023‑08‑12, the images (versions 9.2.8, 9.4.6, 9.6.2 and later) also include the Haskell Tool Stack (Stack).
There is currently no GHC binary distribution for Alpine Linux (AArch64)
available!
❗ Use flags --no-install-ghc --system-ghc
with
Stack to ensure that only the GHC available in the container is used.
Similar projects
What makes this project different:
- Multi‑arch:
linux/amd64
,linux/arm64/v8
- Built using Hadrian1, from source, without docs
- Built using the LLVM backend
- flavour:
perf+llvm+split_sections
- flavour:
Contributing
PRs accepted.
This project follows the Contributor Covenant Code of Conduct.
Dev Containers
The default Dev Container is meant to work on this repository.
Any other configuration is a custom GHC container based on GHC musl.
For further information, see Dev Containers.
License
MIT © 2021 Olivier Benz
-
GHC versions ≥ 9.2.8. ↩