Skip to content

Unofficial binary distributions of GHC on Alpine Linux. Multi-arch (linux/amd64, linux/arm64/v8) GHC musl docker images. Please submit Pull Requests to the GitLab repository. Mirror of

License

Notifications You must be signed in to change notification settings

benz0li/ghc-musl

Repository files navigation

GHC musl

minimal-readme compliant Project Status: Active – The project has reached a stable, usable state and is being actively developed. Donate using Liberapay Open in GitHub Codespaces

Unofficial binary distributions of GHC on Alpine Linux.

The multi‑arch (linux/amd64, linux/arm64/v8) docker image used to build the statically linked Linux amd64 and arm64 binary releases of

Credit to

who laid the groundwork for this.

Credit to

who made it possible to add linux/riscv64 images (GHC versions ≥ 9.10.1).

Table of Contents

Prerequisites

This project requires an installation of docker.

Install

To install docker, follow the instructions for your platform:

Usage

Build image

latest:

docker build \
  --build-arg GHC_VERSION=9.12.1 \
  --build-arg CABAL_VERSION=3.14.1.0 \
  --build-arg STACK_VERSION=3.1.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 Quay:

docker run --rm -ti quay.io/benz0li/ghc-musl[:MAJOR[.MINOR[.PATCH]]]

from Docker Hub:

docker run --rm -ti docker.io/benz0li/ghc-musl[:MAJOR[.MINOR[.PATCH]]]

from GitLab (b-data GmbH):

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).

On 2024‑02‑23, the binary distribution of GHC version 9.8.2 was released for Alpine Linux (AArch64).
❗ Use flags --no-install-ghc --system-ghc with Stack (GHC versions < 9.8.2) to ensure that only the GHC available in the container is used.

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.

Similar projects

What makes this project different:

  1. Multi‑arch: linux/amd64, linux/arm64/v8
  2. Built using Hadrian3, from source, without docs
  3. Built using the LLVM backend
    • flavour: perf+llvm+split_sections

Contributing

PRs accepted. Please submit to the GitLab repository.

This project follows the Contributor Covenant Code of Conduct.

License

Copyright © 2021 Olivier Benz

Distributed under the terms of the MIT License.

Footnotes

  1. Porting GHC to Linux/AArch64

  2. Porting GHC to Linux/riscv64

  3. GHC versions ≥ 9.2.8.

About

Unofficial binary distributions of GHC on Alpine Linux. Multi-arch (linux/amd64, linux/arm64/v8) GHC musl docker images. Please submit Pull Requests to the GitLab repository. Mirror of

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks