Skip to content

Commit 980ca11

Browse files
committed
Add alpine based images
1 parent 5f8acc1 commit 980ca11

File tree

4 files changed

+496
-0
lines changed

4 files changed

+496
-0
lines changed

9.0/alpine3.14/Dockerfile

+124
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
FROM alpine:3.14
2+
3+
RUN apk add --no-cache \
4+
ca-certificates \
5+
curl \
6+
gcc \
7+
git \
8+
g++ \
9+
gmp-dev \
10+
musl-dev \
11+
ncurses-dev \
12+
libc-dev \
13+
libffi-dev
14+
15+
ARG CABAL_INSTALL=3.6.2.0
16+
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
17+
18+
RUN set -eux; \
19+
apk add --no-cache --virtual .fetch-deps gnupg; \
20+
cd /tmp; \
21+
ARCH="$(apk --print-arch)"; \
22+
CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-alpine.tar.xz"; \
23+
CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
24+
CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
25+
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
26+
case "$ARCH" in \
27+
'x86_64') \
28+
CABAL_INSTALL_SHA256='2d3d5e4aa83aad06ed723d7038eac41271d62b56251e0a76fa35db5f902250e3'; \
29+
;; \
30+
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
31+
esac; \
32+
curl -sSL "$CABAL_INSTALL_URL" -o cabal-install.tar.gz; \
33+
echo "$CABAL_INSTALL_SHA256 cabal-install.tar.gz" | sha256sum -c; \
34+
\
35+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL"; \
36+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL.sig"; \
37+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
38+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
39+
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
40+
# confirm we are verying SHA256SUMS that matches the release + sha256
41+
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
42+
gpgconf --kill all; \
43+
\
44+
tar -xf cabal-install.tar.gz -C /usr/local/bin; \
45+
\
46+
rm -rf /tmp/*; \
47+
apk del --no-network .fetch-deps; \
48+
\
49+
cabal --version
50+
51+
ARG GHC=9.0.2
52+
ARG GHC_RELEASE_KEY=88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4
53+
54+
RUN set -eux; \
55+
apk add --no-cache --virtual .fetch-deps gnupg make; \
56+
cd /tmp; \
57+
ARCH="$(apk --print-arch)"; \
58+
GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-alpine3.12-linux-gmp.tar.xz"; \
59+
# sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
60+
case "$ARCH" in \
61+
'x86_64') \
62+
GHC_SHA256='5bb1e7192c2b9fcff68930dbdc65509d345138e9a43c5d447056a68decc05ec8'; \
63+
;; \
64+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
65+
esac; \
66+
curl -sSL "$GHC_URL" -o ghc.tar.xz; \
67+
echo "$GHC_SHA256 ghc.tar.xz" | sha256sum -c; \
68+
\
69+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
70+
curl -sSL "$GHC_URL.sig" -o ghc.tar.xz.sig; \
71+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$GHC_RELEASE_KEY"; \
72+
gpg --batch --verify ghc.tar.xz.sig ghc.tar.xz; \
73+
gpgconf --kill all; \
74+
\
75+
tar xf ghc.tar.xz; \
76+
cd "ghc-$GHC-$ARCH-unknown-linux"; \
77+
./configure --prefix "/opt/ghc/$GHC" --disable-ld-override; \
78+
make install; \
79+
# remove profiling support to save space
80+
find "/opt/ghc/$GHC/" \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete; \
81+
# remove some docs
82+
rm -rf "/opt/ghc/$GHC/share/"; \
83+
\
84+
rm -rf /tmp/*; \
85+
apk del --no-network .fetch-deps; \
86+
\
87+
"/opt/ghc/$GHC/bin/ghc" --version
88+
89+
ARG STACK=2.7.3
90+
ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
91+
92+
RUN set -eux; \
93+
apk add --no-cache --virtual .fetch-deps gnupg; \
94+
cd /tmp; \
95+
ARCH="$(apk --print-arch)"; \
96+
STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
97+
# sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
98+
case "$ARCH" in \
99+
'x86_64') \
100+
STACK_SHA256='a6c090555fa1c64aa61c29aa4449765a51d79e870cf759cde192937cd614e72b'; \
101+
;; \
102+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
103+
esac; \
104+
curl -sSL "$STACK_URL" -o stack.tar.gz; \
105+
echo "$STACK_SHA256 stack.tar.gz" | sha256sum -c; \
106+
\
107+
curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
108+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
109+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
110+
gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
111+
gpgconf --kill all; \
112+
\
113+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
114+
stack config set system-ghc --global true; \
115+
stack config set install-ghc --global false; \
116+
\
117+
rm -rf /tmp/*; \
118+
apk del --no-network .fetch-deps; \
119+
\
120+
stack --version;
121+
122+
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
123+
124+
CMD ["ghci"]

9.0/alpine3.15/Dockerfile

+124
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
FROM alpine:3.15
2+
3+
RUN apk add --no-cache \
4+
ca-certificates \
5+
curl \
6+
gcc \
7+
git \
8+
g++ \
9+
gmp-dev \
10+
musl-dev \
11+
ncurses-dev \
12+
libc-dev \
13+
libffi-dev
14+
15+
ARG CABAL_INSTALL=3.6.2.0
16+
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
17+
18+
RUN set -eux; \
19+
apk add --no-cache --virtual .fetch-deps gnupg; \
20+
cd /tmp; \
21+
ARCH="$(apk --print-arch)"; \
22+
CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-alpine.tar.xz"; \
23+
CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
24+
CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
25+
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
26+
case "$ARCH" in \
27+
'x86_64') \
28+
CABAL_INSTALL_SHA256='2d3d5e4aa83aad06ed723d7038eac41271d62b56251e0a76fa35db5f902250e3'; \
29+
;; \
30+
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
31+
esac; \
32+
curl -sSL "$CABAL_INSTALL_URL" -o cabal-install.tar.gz; \
33+
echo "$CABAL_INSTALL_SHA256 cabal-install.tar.gz" | sha256sum -c; \
34+
\
35+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL"; \
36+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL.sig"; \
37+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
38+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
39+
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
40+
# confirm we are verying SHA256SUMS that matches the release + sha256
41+
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
42+
gpgconf --kill all; \
43+
\
44+
tar -xf cabal-install.tar.gz -C /usr/local/bin; \
45+
\
46+
rm -rf /tmp/*; \
47+
apk del --no-network .fetch-deps; \
48+
\
49+
cabal --version
50+
51+
ARG GHC=9.0.2
52+
ARG GHC_RELEASE_KEY=88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4
53+
54+
RUN set -eux; \
55+
apk add --no-cache --virtual .fetch-deps gnupg make; \
56+
cd /tmp; \
57+
ARCH="$(apk --print-arch)"; \
58+
GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-alpine3.12-linux-gmp.tar.xz"; \
59+
# sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
60+
case "$ARCH" in \
61+
'x86_64') \
62+
GHC_SHA256='5bb1e7192c2b9fcff68930dbdc65509d345138e9a43c5d447056a68decc05ec8'; \
63+
;; \
64+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
65+
esac; \
66+
curl -sSL "$GHC_URL" -o ghc.tar.xz; \
67+
echo "$GHC_SHA256 ghc.tar.xz" | sha256sum -c; \
68+
\
69+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
70+
curl -sSL "$GHC_URL.sig" -o ghc.tar.xz.sig; \
71+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$GHC_RELEASE_KEY"; \
72+
gpg --batch --verify ghc.tar.xz.sig ghc.tar.xz; \
73+
gpgconf --kill all; \
74+
\
75+
tar xf ghc.tar.xz; \
76+
cd "ghc-$GHC-$ARCH-unknown-linux"; \
77+
./configure --prefix "/opt/ghc/$GHC" --disable-ld-override; \
78+
make install; \
79+
# remove profiling support to save space
80+
find "/opt/ghc/$GHC/" \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete; \
81+
# remove some docs
82+
rm -rf "/opt/ghc/$GHC/share/"; \
83+
\
84+
rm -rf /tmp/*; \
85+
apk del --no-network .fetch-deps; \
86+
\
87+
"/opt/ghc/$GHC/bin/ghc" --version
88+
89+
ARG STACK=2.7.3
90+
ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
91+
92+
RUN set -eux; \
93+
apk add --no-cache --virtual .fetch-deps gnupg; \
94+
cd /tmp; \
95+
ARCH="$(apk --print-arch)"; \
96+
STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
97+
# sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
98+
case "$ARCH" in \
99+
'x86_64') \
100+
STACK_SHA256='a6c090555fa1c64aa61c29aa4449765a51d79e870cf759cde192937cd614e72b'; \
101+
;; \
102+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
103+
esac; \
104+
curl -sSL "$STACK_URL" -o stack.tar.gz; \
105+
echo "$STACK_SHA256 stack.tar.gz" | sha256sum -c; \
106+
\
107+
curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
108+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
109+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
110+
gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
111+
gpgconf --kill all; \
112+
\
113+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
114+
stack config set system-ghc --global true; \
115+
stack config set install-ghc --global false; \
116+
\
117+
rm -rf /tmp/*; \
118+
apk del --no-network .fetch-deps; \
119+
\
120+
stack --version;
121+
122+
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
123+
124+
CMD ["ghci"]

9.2/alpine3.14/Dockerfile

+124
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
FROM alpine:3.14
2+
3+
RUN apk add --no-cache \
4+
ca-certificates \
5+
curl \
6+
gcc \
7+
git \
8+
g++ \
9+
gmp-dev \
10+
musl-dev \
11+
ncurses-dev \
12+
libc-dev \
13+
libffi-dev
14+
15+
ARG CABAL_INSTALL=3.6.2.0
16+
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
17+
18+
RUN set -eux; \
19+
apk add --no-cache --virtual .fetch-deps gnupg; \
20+
cd /tmp; \
21+
ARCH="$(apk --print-arch)"; \
22+
CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-alpine.tar.xz"; \
23+
CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
24+
CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
25+
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
26+
case "$ARCH" in \
27+
'x86_64') \
28+
CABAL_INSTALL_SHA256='2d3d5e4aa83aad06ed723d7038eac41271d62b56251e0a76fa35db5f902250e3'; \
29+
;; \
30+
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
31+
esac; \
32+
curl -sSL "$CABAL_INSTALL_URL" -o cabal-install.tar.gz; \
33+
echo "$CABAL_INSTALL_SHA256 cabal-install.tar.gz" | sha256sum -c; \
34+
\
35+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL"; \
36+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL.sig"; \
37+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
38+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
39+
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
40+
# confirm we are verying SHA256SUMS that matches the release + sha256
41+
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
42+
gpgconf --kill all; \
43+
\
44+
tar -xf cabal-install.tar.gz -C /usr/local/bin; \
45+
\
46+
rm -rf /tmp/*; \
47+
apk del --no-network .fetch-deps; \
48+
\
49+
cabal --version
50+
51+
ARG GHC=9.2.1
52+
ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
53+
54+
RUN set -eux; \
55+
apk add --no-cache --virtual .fetch-deps gnupg make; \
56+
cd /tmp; \
57+
ARCH="$(apk --print-arch)"; \
58+
GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-alpine3.12-linux-gmp.tar.xz"; \
59+
# sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
60+
case "$ARCH" in \
61+
'x86_64') \
62+
GHC_SHA256='952b37671ef2838961e53949f4eecb4667d57472720058922929005ea7dc5b15'; \
63+
;; \
64+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
65+
esac; \
66+
curl -sSL "$GHC_URL" -o ghc.tar.xz; \
67+
echo "$GHC_SHA256 ghc.tar.xz" | sha256sum -c; \
68+
\
69+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
70+
curl -sSL "$GHC_URL.sig" -o ghc.tar.xz.sig; \
71+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$GHC_RELEASE_KEY"; \
72+
gpg --batch --verify ghc.tar.xz.sig ghc.tar.xz; \
73+
gpgconf --kill all; \
74+
\
75+
tar xf ghc.tar.xz; \
76+
cd "ghc-$GHC-$ARCH-unknown-linux"; \
77+
./configure --prefix "/opt/ghc/$GHC" --disable-ld-override; \
78+
make install; \
79+
# remove profiling support to save space
80+
find "/opt/ghc/$GHC/" \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete; \
81+
# remove some docs
82+
rm -rf "/opt/ghc/$GHC/share/"; \
83+
\
84+
rm -rf /tmp/*; \
85+
apk del --no-network .fetch-deps; \
86+
\
87+
"/opt/ghc/$GHC/bin/ghc" --version
88+
89+
ARG STACK=2.7.3
90+
ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
91+
92+
RUN set -eux; \
93+
apk add --no-cache --virtual .fetch-deps gnupg; \
94+
cd /tmp; \
95+
ARCH="$(apk --print-arch)"; \
96+
STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
97+
# sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
98+
case "$ARCH" in \
99+
'x86_64') \
100+
STACK_SHA256='a6c090555fa1c64aa61c29aa4449765a51d79e870cf759cde192937cd614e72b'; \
101+
;; \
102+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
103+
esac; \
104+
curl -sSL "$STACK_URL" -o stack.tar.gz; \
105+
echo "$STACK_SHA256 stack.tar.gz" | sha256sum -c; \
106+
\
107+
curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
108+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
109+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
110+
gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
111+
gpgconf --kill all; \
112+
\
113+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
114+
stack config set system-ghc --global true; \
115+
stack config set install-ghc --global false; \
116+
\
117+
rm -rf /tmp/*; \
118+
apk del --no-network .fetch-deps; \
119+
\
120+
stack --version;
121+
122+
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
123+
124+
CMD ["ghci"]

0 commit comments

Comments
 (0)