-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bump Haskell to GHC 9.2.3 #12534
Merged
Merged
Bump Haskell to GHC 9.2.3 #12534
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
HVR has not been involved in the Haskell community for years I believe. I think it is better to reflect that is not involved in this project.
Also, non-slim debian is now based on buildpack-deps. Also, re-order the images for more common layers between GHC versions for better caching.
Diff for 347e450:diff --git a/_bashbrew-cat b/_bashbrew-cat
index a965f2c..3a050e7 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1,32 +1,32 @@
-Maintainers: Alistair Burrowes <[email protected]> (@AlistairB), Herbert Valerio Riedel <[email protected]> (@hvr)
+Maintainers: Alistair Burrowes <[email protected]> (@AlistairB)
GitRepo: https://github.com/haskell/docker-haskell
Tags: 8.10.7-buster, 8.10-buster, 8-buster, 8.10.7, 8.10, 8
Architectures: amd64, arm64v8
-GitCommit: 210996a373f977e4fc8ed39508f8bdeff9a7d386
+GitCommit: 573ee754783f8d5c5674888768378c6832f8d121
Directory: 8.10/buster
Tags: 8.10.7-slim-buster, 8.10-slim-buster, 8-slim-buster, 8.10.7-slim, 8.10-slim, 8-slim
Architectures: amd64, arm64v8
-GitCommit: 210996a373f977e4fc8ed39508f8bdeff9a7d386
+GitCommit: 573ee754783f8d5c5674888768378c6832f8d121
Directory: 8.10/slim-buster
Tags: 9.0.2-buster, 9.0-buster, 9.0.2, 9.0
Architectures: amd64, arm64v8
-GitCommit: 210996a373f977e4fc8ed39508f8bdeff9a7d386
+GitCommit: 573ee754783f8d5c5674888768378c6832f8d121
Directory: 9.0/buster
Tags: 9.0.2-slim-buster, 9.0-slim-buster, 9.0.2-slim, 9.0-slim
Architectures: amd64, arm64v8
-GitCommit: 210996a373f977e4fc8ed39508f8bdeff9a7d386
+GitCommit: 573ee754783f8d5c5674888768378c6832f8d121
Directory: 9.0/slim-buster
-Tags: 9.2.2-buster, 9.2-buster, 9-buster, buster, 9.2.2, 9.2, 9, latest
+Tags: 9.2.3-buster, 9.2-buster, 9-buster, buster, 9.2.3, 9.2, 9, latest
Architectures: amd64, arm64v8
-GitCommit: 210996a373f977e4fc8ed39508f8bdeff9a7d386
+GitCommit: 573ee754783f8d5c5674888768378c6832f8d121
Directory: 9.2/buster
-Tags: 9.2.2-slim-buster, 9.2-slim-buster, 9-slim-buster, slim-buster, 9.2.2-slim, 9.2-slim, 9-slim, slim
+Tags: 9.2.3-slim-buster, 9.2-slim-buster, 9-slim-buster, slim-buster, 9.2.3-slim, 9.2-slim, 9-slim, slim
Architectures: amd64, arm64v8
-GitCommit: 210996a373f977e4fc8ed39508f8bdeff9a7d386
+GitCommit: 573ee754783f8d5c5674888768378c6832f8d121
Directory: 9.2/slim-buster
diff --git a/_bashbrew-list b/_bashbrew-list
index 0165296..69fdc2e 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -26,10 +26,10 @@ haskell:9.2
haskell:9.2-buster
haskell:9.2-slim
haskell:9.2-slim-buster
-haskell:9.2.2
-haskell:9.2.2-buster
-haskell:9.2.2-slim
-haskell:9.2.2-slim-buster
+haskell:9.2.3
+haskell:9.2.3-buster
+haskell:9.2.3-slim
+haskell:9.2.3-slim-buster
haskell:buster
haskell:latest
haskell:slim
diff --git a/haskell_8-slim/Dockerfile b/haskell_8-slim/Dockerfile
index 869479f..803f05c 100644
--- a/haskell_8-slim/Dockerfile
+++ b/haskell_8-slim/Dockerfile
@@ -23,6 +23,46 @@ RUN apt-get update && \
zlib1g-dev && \
rm -rf /var/lib/apt/lists/*
+ARG STACK=2.7.5
+ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+RUN set -eux; \
+ cd /tmp; \
+ ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
+ INSTALL_STACK="true"; \
+ STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
+ # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+ case "$ARCH" in \
+ 'aarch64') \
+ # Stack does not officially support ARM64, nor do the binaries that exist work.
+ # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
+ # stack-2.7.1-linux-aarch64.tar.gz
+ INSTALL_STACK="false"; \
+ ;; \
+ 'x86_64') \
+ STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
+ ;; \
+ *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+ esac; \
+ if [ "$INSTALL_STACK" = "true" ]; then \
+ curl -sSL "$STACK_URL" -o stack.tar.gz; \
+ echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
+ \
+ curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
+ GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+ gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
+ gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
+ gpgconf --kill all; \
+ \
+ tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
+ stack config set system-ghc --global true; \
+ stack config set install-ghc --global false; \
+ \
+ rm -rf /tmp/*; \
+ \
+ stack --version; \
+ fi
+
ARG CABAL_INSTALL=3.6.2.0
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
@@ -50,7 +90,7 @@ RUN set -eux; \
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
- # confirm we are verying SHA256SUMS that matches the release + sha256
+ # confirm we are verifying SHA256SUMS that matches the release + sha256
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
gpgconf --kill all; \
\
@@ -116,46 +156,6 @@ RUN set -eux; \
\
"/opt/ghc/$GHC/bin/ghc" --version
-ARG STACK=2.7.5
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
-
-RUN set -eux; \
- cd /tmp; \
- ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
- INSTALL_STACK="true"; \
- STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
- # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
- case "$ARCH" in \
- 'aarch64') \
- # Stack does not officially support ARM64, nor do the binaries that exist work.
- # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
- # stack-2.7.1-linux-aarch64.tar.gz
- INSTALL_STACK="false"; \
- ;; \
- 'x86_64') \
- STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
- ;; \
- *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
- esac; \
- if [ "$INSTALL_STACK" = "true" ]; then \
- curl -sSL "$STACK_URL" -o stack.tar.gz; \
- echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
- \
- curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
- GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
- gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
- gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
- gpgconf --kill all; \
- \
- tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
- stack config set system-ghc --global true; \
- stack config set install-ghc --global false; \
- \
- rm -rf /tmp/*; \
- \
- stack --version; \
- fi
-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
CMD ["ghci"]
diff --git a/haskell_8/Dockerfile b/haskell_8/Dockerfile
index 1a91e47..d1373db 100644
--- a/haskell_8/Dockerfile
+++ b/haskell_8/Dockerfile
@@ -1,30 +1,53 @@
-FROM debian:buster
+FROM buildpack-deps:buster
ENV LANG C.UTF-8
-# common haskell + stack dependencies
+# additional haskell specific deps
RUN apt-get update && \
apt-get install -y --no-install-recommends \
- ca-certificates \
- curl \
- dpkg-dev \
- git \
- gcc \
- gnupg \
- g++ \
- libc6-dev \
- libffi-dev \
- libgmp-dev \
- libnuma-dev \
- libsqlite3-dev \
- libtinfo-dev \
- make \
- netbase \
- openssh-client \
- xz-utils \
- zlib1g-dev && \
+ libtinfo-dev && \
rm -rf /var/lib/apt/lists/*
+ARG STACK=2.7.5
+ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+RUN set -eux; \
+ cd /tmp; \
+ ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
+ INSTALL_STACK="true"; \
+ STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
+ # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+ case "$ARCH" in \
+ 'aarch64') \
+ # Stack does not officially support ARM64, nor do the binaries that exist work.
+ # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
+ # stack-2.7.1-linux-aarch64.tar.gz
+ INSTALL_STACK="false"; \
+ ;; \
+ 'x86_64') \
+ STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
+ ;; \
+ *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+ esac; \
+ if [ "$INSTALL_STACK" = "true" ]; then \
+ curl -sSL "$STACK_URL" -o stack.tar.gz; \
+ echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
+ \
+ curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
+ GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+ gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
+ gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
+ gpgconf --kill all; \
+ \
+ tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
+ stack config set system-ghc --global true; \
+ stack config set install-ghc --global false; \
+ \
+ rm -rf /tmp/*; \
+ \
+ stack --version; \
+ fi
+
ARG CABAL_INSTALL=3.6.2.0
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
@@ -52,7 +75,7 @@ RUN set -eux; \
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
- # confirm we are verying SHA256SUMS that matches the release + sha256
+ # confirm we are verifying SHA256SUMS that matches the release + sha256
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
gpgconf --kill all; \
\
@@ -116,46 +139,6 @@ RUN set -eux; \
\
"/opt/ghc/$GHC/bin/ghc" --version
-ARG STACK=2.7.5
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
-
-RUN set -eux; \
- cd /tmp; \
- ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
- INSTALL_STACK="true"; \
- STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
- # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
- case "$ARCH" in \
- 'aarch64') \
- # Stack does not officially support ARM64, nor do the binaries that exist work.
- # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
- # stack-2.7.1-linux-aarch64.tar.gz
- INSTALL_STACK="false"; \
- ;; \
- 'x86_64') \
- STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
- ;; \
- *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
- esac; \
- if [ "$INSTALL_STACK" = "true" ]; then \
- curl -sSL "$STACK_URL" -o stack.tar.gz; \
- echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
- \
- curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
- GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
- gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
- gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
- gpgconf --kill all; \
- \
- tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
- stack config set system-ghc --global true; \
- stack config set install-ghc --global false; \
- \
- rm -rf /tmp/*; \
- \
- stack --version; \
- fi
-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
CMD ["ghci"]
diff --git a/haskell_9.0-slim/Dockerfile b/haskell_9.0-slim/Dockerfile
index c5e5c5d..bd4802b 100644
--- a/haskell_9.0-slim/Dockerfile
+++ b/haskell_9.0-slim/Dockerfile
@@ -23,6 +23,46 @@ RUN apt-get update && \
zlib1g-dev && \
rm -rf /var/lib/apt/lists/*
+ARG STACK=2.7.5
+ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+RUN set -eux; \
+ cd /tmp; \
+ ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
+ INSTALL_STACK="true"; \
+ STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
+ # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+ case "$ARCH" in \
+ 'aarch64') \
+ # Stack does not officially support ARM64, nor do the binaries that exist work.
+ # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
+ # stack-2.7.1-linux-aarch64.tar.gz
+ INSTALL_STACK="false"; \
+ ;; \
+ 'x86_64') \
+ STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
+ ;; \
+ *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+ esac; \
+ if [ "$INSTALL_STACK" = "true" ]; then \
+ curl -sSL "$STACK_URL" -o stack.tar.gz; \
+ echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
+ \
+ curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
+ GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+ gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
+ gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
+ gpgconf --kill all; \
+ \
+ tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
+ stack config set system-ghc --global true; \
+ stack config set install-ghc --global false; \
+ \
+ rm -rf /tmp/*; \
+ \
+ stack --version; \
+ fi
+
ARG CABAL_INSTALL=3.6.2.0
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
@@ -50,7 +90,7 @@ RUN set -eux; \
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
- # confirm we are verying SHA256SUMS that matches the release + sha256
+ # confirm we are verifying SHA256SUMS that matches the release + sha256
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
gpgconf --kill all; \
\
@@ -116,46 +156,6 @@ RUN set -eux; \
\
"/opt/ghc/$GHC/bin/ghc" --version
-ARG STACK=2.7.5
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
-
-RUN set -eux; \
- cd /tmp; \
- ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
- INSTALL_STACK="true"; \
- STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
- # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
- case "$ARCH" in \
- 'aarch64') \
- # Stack does not officially support ARM64, nor do the binaries that exist work.
- # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
- # stack-2.7.1-linux-aarch64.tar.gz
- INSTALL_STACK="false"; \
- ;; \
- 'x86_64') \
- STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
- ;; \
- *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
- esac; \
- if [ "$INSTALL_STACK" = "true" ]; then \
- curl -sSL "$STACK_URL" -o stack.tar.gz; \
- echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
- \
- curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
- GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
- gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
- gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
- gpgconf --kill all; \
- \
- tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
- stack config set system-ghc --global true; \
- stack config set install-ghc --global false; \
- \
- rm -rf /tmp/*; \
- \
- stack --version; \
- fi
-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
CMD ["ghci"]
diff --git a/haskell_9.0/Dockerfile b/haskell_9.0/Dockerfile
index 7111bf4..4bbabc8 100644
--- a/haskell_9.0/Dockerfile
+++ b/haskell_9.0/Dockerfile
@@ -1,30 +1,54 @@
-FROM debian:buster
+FROM buildpack-deps:buster
ENV LANG C.UTF-8
-# common haskell + stack dependencies
+# additional haskell specific deps
RUN apt-get update && \
apt-get install -y --no-install-recommends \
- ca-certificates \
- curl \
- dpkg-dev \
- git \
- gcc \
- gnupg \
- g++ \
- libc6-dev \
- libffi-dev \
- libgmp-dev \
libnuma-dev \
- libsqlite3-dev \
- libtinfo-dev \
- make \
- netbase \
- openssh-client \
- xz-utils \
- zlib1g-dev && \
+ libtinfo-dev && \
rm -rf /var/lib/apt/lists/*
+ARG STACK=2.7.5
+ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+RUN set -eux; \
+ cd /tmp; \
+ ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
+ INSTALL_STACK="true"; \
+ STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
+ # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+ case "$ARCH" in \
+ 'aarch64') \
+ # Stack does not officially support ARM64, nor do the binaries that exist work.
+ # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
+ # stack-2.7.1-linux-aarch64.tar.gz
+ INSTALL_STACK="false"; \
+ ;; \
+ 'x86_64') \
+ STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
+ ;; \
+ *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+ esac; \
+ if [ "$INSTALL_STACK" = "true" ]; then \
+ curl -sSL "$STACK_URL" -o stack.tar.gz; \
+ echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
+ \
+ curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
+ GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+ gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
+ gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
+ gpgconf --kill all; \
+ \
+ tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
+ stack config set system-ghc --global true; \
+ stack config set install-ghc --global false; \
+ \
+ rm -rf /tmp/*; \
+ \
+ stack --version; \
+ fi
+
ARG CABAL_INSTALL=3.6.2.0
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
@@ -52,7 +76,7 @@ RUN set -eux; \
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
- # confirm we are verying SHA256SUMS that matches the release + sha256
+ # confirm we are verifying SHA256SUMS that matches the release + sha256
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
gpgconf --kill all; \
\
@@ -116,46 +140,6 @@ RUN set -eux; \
\
"/opt/ghc/$GHC/bin/ghc" --version
-ARG STACK=2.7.5
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
-
-RUN set -eux; \
- cd /tmp; \
- ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
- INSTALL_STACK="true"; \
- STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
- # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
- case "$ARCH" in \
- 'aarch64') \
- # Stack does not officially support ARM64, nor do the binaries that exist work.
- # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
- # stack-2.7.1-linux-aarch64.tar.gz
- INSTALL_STACK="false"; \
- ;; \
- 'x86_64') \
- STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
- ;; \
- *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
- esac; \
- if [ "$INSTALL_STACK" = "true" ]; then \
- curl -sSL "$STACK_URL" -o stack.tar.gz; \
- echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
- \
- curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
- GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
- gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
- gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
- gpgconf --kill all; \
- \
- tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
- stack config set system-ghc --global true; \
- stack config set install-ghc --global false; \
- \
- rm -rf /tmp/*; \
- \
- stack --version; \
- fi
-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
CMD ["ghci"]
diff --git a/haskell_latest/Dockerfile b/haskell_latest/Dockerfile
index 843e0aa..ae5c645 100644
--- a/haskell_latest/Dockerfile
+++ b/haskell_latest/Dockerfile
@@ -1,30 +1,53 @@
-FROM debian:buster
+FROM buildpack-deps:buster
ENV LANG C.UTF-8
-# common haskell + stack dependencies
+# additional haskell specific deps
RUN apt-get update && \
apt-get install -y --no-install-recommends \
- ca-certificates \
- curl \
- dpkg-dev \
- git \
- gcc \
- gnupg \
- g++ \
- libc6-dev \
- libffi-dev \
- libgmp-dev \
- libnuma-dev \
- libsqlite3-dev \
- libtinfo-dev \
- make \
- netbase \
- openssh-client \
- xz-utils \
- zlib1g-dev && \
+ libtinfo-dev && \
rm -rf /var/lib/apt/lists/*
+ARG STACK=2.7.5
+ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+RUN set -eux; \
+ cd /tmp; \
+ ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
+ INSTALL_STACK="true"; \
+ STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
+ # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+ case "$ARCH" in \
+ 'aarch64') \
+ # Stack does not officially support ARM64, nor do the binaries that exist work.
+ # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
+ # stack-2.7.1-linux-aarch64.tar.gz
+ INSTALL_STACK="false"; \
+ ;; \
+ 'x86_64') \
+ STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
+ ;; \
+ *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+ esac; \
+ if [ "$INSTALL_STACK" = "true" ]; then \
+ curl -sSL "$STACK_URL" -o stack.tar.gz; \
+ echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
+ \
+ curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
+ GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+ gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
+ gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
+ gpgconf --kill all; \
+ \
+ tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
+ stack config set system-ghc --global true; \
+ stack config set install-ghc --global false; \
+ \
+ rm -rf /tmp/*; \
+ \
+ stack --version; \
+ fi
+
ARG CABAL_INSTALL=3.6.2.0
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
@@ -52,7 +75,7 @@ RUN set -eux; \
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
- # confirm we are verying SHA256SUMS that matches the release + sha256
+ # confirm we are verifying SHA256SUMS that matches the release + sha256
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
gpgconf --kill all; \
\
@@ -62,8 +85,8 @@ RUN set -eux; \
\
cabal --version
-ARG GHC=9.2.2
-ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
+ARG GHC=9.2.3
+ARG GHC_RELEASE_KEY=88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4
RUN set -eux; \
cd /tmp; \
@@ -72,10 +95,10 @@ RUN set -eux; \
# sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
case "$ARCH" in \
'aarch64') \
- GHC_SHA256='f3621ccba7ae48fcd67a9505f61bb5ccfb05c4cbfecd5a6ea65fe3f150af0e98'; \
+ GHC_SHA256='4b0b3848606ca83923b666dc8325df6a93986682c57b2865a44c52795a30f808'; \
;; \
'x86_64') \
- GHC_SHA256='fb61dea556a2023dc2d50ee61a22144bb23e4229a378e533065124c218f40cfc'; \
+ GHC_SHA256='6cfe876a334443438dbe47079ddf9c3b0768c7b3af5ce9cdb1dee7e72497f4f5'; \
;; \
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
esac; \
@@ -99,46 +122,6 @@ RUN set -eux; \
\
"/opt/ghc/$GHC/bin/ghc" --version
-ARG STACK=2.7.5
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
-
-RUN set -eux; \
- cd /tmp; \
- ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
- INSTALL_STACK="true"; \
- STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
- # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
- case "$ARCH" in \
- 'aarch64') \
- # Stack does not officially support ARM64, nor do the binaries that exist work.
- # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
- # stack-2.7.1-linux-aarch64.tar.gz
- INSTALL_STACK="false"; \
- ;; \
- 'x86_64') \
- STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
- ;; \
- *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
- esac; \
- if [ "$INSTALL_STACK" = "true" ]; then \
- curl -sSL "$STACK_URL" -o stack.tar.gz; \
- echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
- \
- curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
- GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
- gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
- gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
- gpgconf --kill all; \
- \
- tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
- stack config set system-ghc --global true; \
- stack config set install-ghc --global false; \
- \
- rm -rf /tmp/*; \
- \
- stack --version; \
- fi
-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
CMD ["ghci"]
diff --git a/haskell_slim/Dockerfile b/haskell_slim/Dockerfile
index 696eba6..ff890ac 100644
--- a/haskell_slim/Dockerfile
+++ b/haskell_slim/Dockerfile
@@ -23,6 +23,46 @@ RUN apt-get update && \
zlib1g-dev && \
rm -rf /var/lib/apt/lists/*
+ARG STACK=2.7.5
+ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+RUN set -eux; \
+ cd /tmp; \
+ ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
+ INSTALL_STACK="true"; \
+ STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
+ # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+ case "$ARCH" in \
+ 'aarch64') \
+ # Stack does not officially support ARM64, nor do the binaries that exist work.
+ # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
+ # stack-2.7.1-linux-aarch64.tar.gz
+ INSTALL_STACK="false"; \
+ ;; \
+ 'x86_64') \
+ STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
+ ;; \
+ *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+ esac; \
+ if [ "$INSTALL_STACK" = "true" ]; then \
+ curl -sSL "$STACK_URL" -o stack.tar.gz; \
+ echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
+ \
+ curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
+ GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+ gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
+ gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
+ gpgconf --kill all; \
+ \
+ tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
+ stack config set system-ghc --global true; \
+ stack config set install-ghc --global false; \
+ \
+ rm -rf /tmp/*; \
+ \
+ stack --version; \
+ fi
+
ARG CABAL_INSTALL=3.6.2.0
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
@@ -50,7 +90,7 @@ RUN set -eux; \
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
- # confirm we are verying SHA256SUMS that matches the release + sha256
+ # confirm we are verifying SHA256SUMS that matches the release + sha256
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
gpgconf --kill all; \
\
@@ -60,8 +100,8 @@ RUN set -eux; \
\
cabal --version
-ARG GHC=9.2.2
-ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
+ARG GHC=9.2.3
+ARG GHC_RELEASE_KEY=88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4
RUN set -eux; \
cd /tmp; \
@@ -70,10 +110,10 @@ RUN set -eux; \
# sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
case "$ARCH" in \
'aarch64') \
- GHC_SHA256='f3621ccba7ae48fcd67a9505f61bb5ccfb05c4cbfecd5a6ea65fe3f150af0e98'; \
+ GHC_SHA256='4b0b3848606ca83923b666dc8325df6a93986682c57b2865a44c52795a30f808'; \
;; \
'x86_64') \
- GHC_SHA256='fb61dea556a2023dc2d50ee61a22144bb23e4229a378e533065124c218f40cfc'; \
+ GHC_SHA256='6cfe876a334443438dbe47079ddf9c3b0768c7b3af5ce9cdb1dee7e72497f4f5'; \
;; \
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
esac; \
@@ -99,46 +139,6 @@ RUN set -eux; \
\
"/opt/ghc/$GHC/bin/ghc" --version
-ARG STACK=2.7.5
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
-
-RUN set -eux; \
- cd /tmp; \
- ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
- INSTALL_STACK="true"; \
- STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
- # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
- case "$ARCH" in \
- 'aarch64') \
- # Stack does not officially support ARM64, nor do the binaries that exist work.
- # Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
- # stack-2.7.1-linux-aarch64.tar.gz
- INSTALL_STACK="false"; \
- ;; \
- 'x86_64') \
- STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
- ;; \
- *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
- esac; \
- if [ "$INSTALL_STACK" = "true" ]; then \
- curl -sSL "$STACK_URL" -o stack.tar.gz; \
- echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
- \
- curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
- GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
- gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
- gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
- gpgconf --kill all; \
- \
- tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
- stack config set system-ghc --global true; \
- stack config set install-ghc --global false; \
- \
- rm -rf /tmp/*; \
- \
- stack --version; \
- fi
-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
CMD ["ghci"] Relevant Maintainers:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Also:
buildpack-deps
for Debian non-slim variants.