2023-12-03 15:53:25 +00:00
|
|
|
FROM alpine:3.16
|
2022-11-22 11:41:44 +00:00
|
|
|
|
|
|
|
ENV LANG C.UTF-8
|
|
|
|
|
|
|
|
RUN apk add --no-cache \
|
|
|
|
curl \
|
|
|
|
gcc \
|
|
|
|
g++ \
|
|
|
|
binutils \
|
|
|
|
binutils-gold \
|
|
|
|
coreutils \
|
|
|
|
bsd-compat-headers \
|
|
|
|
gmp-dev \
|
|
|
|
ncurses-dev \
|
|
|
|
libffi-dev \
|
|
|
|
make \
|
|
|
|
xz \
|
|
|
|
tar \
|
|
|
|
perl \
|
|
|
|
bash \
|
|
|
|
diffutils \
|
|
|
|
git \
|
|
|
|
gzip \
|
|
|
|
gnupg && \
|
|
|
|
apk add --no-cache \
|
|
|
|
zlib \
|
|
|
|
zlib-dev \
|
|
|
|
zlib-static \
|
|
|
|
bzip2 \
|
|
|
|
bzip2-dev \
|
|
|
|
bzip2-static \
|
|
|
|
gmp \
|
|
|
|
gmp-dev \
|
|
|
|
openssl-dev \
|
|
|
|
openssl-libs-static \
|
|
|
|
xz \
|
|
|
|
xz-dev \
|
|
|
|
ncurses-static
|
|
|
|
|
2023-12-03 15:53:25 +00:00
|
|
|
ARG GHCUP_VERSION=0.1.20.0
|
|
|
|
ARG GPG_KEY="7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD 88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF"
|
2023-07-11 15:41:18 +00:00
|
|
|
|
2022-11-22 11:41:44 +00:00
|
|
|
|
|
|
|
# install ghcup
|
|
|
|
RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \
|
|
|
|
curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/x86_64-linux-ghcup-$GHCUP_VERSION && \
|
|
|
|
curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS && \
|
|
|
|
curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS.sig && \
|
|
|
|
gpg --verify SHA256SUMS.sig SHA256SUMS && \
|
|
|
|
sha256sum -c --ignore-missing SHA256SUMS && \
|
|
|
|
mv x86_64-linux-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \
|
|
|
|
chmod +x /usr/bin/ghcup && \
|
|
|
|
rm -rf SHA256SUMS SHA256SUMS.sig
|
|
|
|
|
2023-12-03 15:53:25 +00:00
|
|
|
ARG GHC=9.4.8
|
|
|
|
ARG CABAL_INSTALL=3.10.2.0
|
|
|
|
ARG STACK=2.13.1
|
2022-11-22 11:41:44 +00:00
|
|
|
|
|
|
|
ENV GHCUP_CURL_OPTS="--silent"
|
|
|
|
ENV NO_COLOR=1
|
|
|
|
|
|
|
|
# install haskell toolchain
|
|
|
|
RUN ghcup config set gpg-setting GPGStrict && \
|
|
|
|
ghcup --verbose install ghc --isolate=/usr --force ${GHC} && \
|
|
|
|
ghcup --verbose install cabal --isolate=/usr/bin --force ${CABAL_INSTALL} && \
|
|
|
|
find "/usr/lib/ghc-${GHC}/" \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete && \
|
2023-12-03 16:02:25 +00:00
|
|
|
rm -rf "/usr/share/doc/ghc-${GHC}" && \
|
2022-11-22 11:41:44 +00:00
|
|
|
rm -rf /tmp/ghcup* && \
|
|
|
|
ghcup gc -p -s -c -t
|
|
|
|
|
|
|
|
ENV PATH /root/.cabal/bin:/root/.ghcup:/root/.local/bin:$PATH
|
|
|
|
|