Skip to content

Commit 08e1097

Browse files
committed
Arm64 Support In Dockerfile
Signed-off-by: odidev <[email protected]>
1 parent 82f4438 commit 08e1097

File tree

2 files changed

+82
-52
lines changed

2 files changed

+82
-52
lines changed

8.8/buster/Dockerfile

Lines changed: 41 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,34 +11,49 @@ ARG STACK=2.3.1
1111
ARG STACK_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
1212
ARG STACK_RELEASE_KEY=2C6A674E85EE3FB896AFC9B965101FF31C5C154D
1313

14-
RUN export GNUPGHOME="$(mktemp -d)" && \
15-
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${DEBIAN_KEY} && \
16-
gpg --batch --armor --export ${DEBIAN_KEY} > /etc/apt/trusted.gpg.d/haskell.org.gpg.asc && \
17-
gpgconf --kill all && \
18-
echo 'deb http://downloads.haskell.org/debian buster main' > /etc/apt/sources.list.d/ghc.list && \
19-
apt-get update && \
20-
apt-get install -y --no-install-recommends \
21-
cabal-install-${CABAL_INSTALL} \
22-
curl \
23-
g++ \
24-
ghc-${GHC} \
25-
git \
26-
libsqlite3-dev \
27-
libtinfo-dev \
28-
make \
29-
netbase \
30-
openssh-client \
31-
xz-utils \
32-
zlib1g-dev && \
14+
RUN apt-get update && \
15+
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git wget \
16+
zlib1g-dev libtinfo-dev libtinfo5 libsqlite3-dev \
17+
g++ netbase xz-utils libnuma-dev make openssh-client && \
18+
export GNUPGHOME="$(mktemp -d)" && \
19+
if [ `uname -m` = "aarch64" ] ; then \
20+
wget https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-aarch64-deb9-linux.tar.xz && \
21+
tar -xvf ghc-8.8.3-aarch64-deb9-linux.tar.xz && \
22+
cd ghc-8.8.3 && \
23+
./configure && \
24+
make install && \
25+
cd ../ && \
26+
rm -rf ghc-8.8.3-aarch64-deb9-linux.tar.xz ghc-8.8.3 && \
27+
apt-get install -y cabal-install ; \
28+
else \
29+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${DEBIAN_KEY} && \
30+
gpg --batch --armor --export ${DEBIAN_KEY} > /etc/apt/trusted.gpg.d/haskell.org.gpg.asc && \
31+
gpgconf --kill all && \
32+
echo 'deb http://downloads.haskell.org/debian buster main' > /etc/apt/sources.list.d/ghc.list && \
33+
apt-get update && \
34+
apt-get install -y --no-install-recommends \
35+
cabal-install-${CABAL_INSTALL} \
36+
ghc-${GHC}; \
37+
fi && \
3338
rm -rf "$GNUPGHOME" /var/lib/apt/lists/*
3439

35-
RUN export GNUPGHOME="$(mktemp -d)" && \
36-
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_KEY} && \
37-
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_RELEASE_KEY} && \
38-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
39-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
40-
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
41-
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 && \
40+
RUN arch=`uname -m` && \
41+
export GNUPGHOME="$(mktemp -d)" && \
42+
if [ $arch = "aarch64" ] ; then \
43+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v2.1.3/stack-2.1.3-linux-$arch.tar.gz -o stack.tar.gz && \
44+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v2.1.3/stack-2.1.3-linux-$arch.tar.gz.asc -o stack.tar.gz.asc && \
45+
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys C5705533DA4F78D8664B5DC0575159689BEFB442 && \
46+
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 2C6A674E85EE3FB896AFC9B965101FF31C5C154D && \
47+
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
48+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1; \
49+
else \
50+
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_KEY} && \
51+
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_RELEASE_KEY} && \
52+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
53+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
54+
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
55+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1; \
56+
fi && \
4257
/usr/local/bin/stack config set system-ghc --global true && \
4358
/usr/local/bin/stack config set install-ghc --global false && \
4459
rm -rf "$GNUPGHOME" /var/lib/apt/lists/* /stack.tar.gz.asc /stack.tar.gz

8.8/stretch/Dockerfile

Lines changed: 41 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,34 +11,49 @@ ARG STACK=2.3.1
1111
ARG STACK_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
1212
ARG STACK_RELEASE_KEY=2C6A674E85EE3FB896AFC9B965101FF31C5C154D
1313

14-
RUN export GNUPGHOME="$(mktemp -d)" && \
15-
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${DEBIAN_KEY} && \
16-
gpg --batch --armor --export ${DEBIAN_KEY} > /etc/apt/trusted.gpg.d/haskell.org.gpg.asc && \
17-
gpgconf --kill all && \
18-
echo 'deb http://downloads.haskell.org/debian stretch main' > /etc/apt/sources.list.d/ghc.list && \
19-
apt-get update && \
20-
apt-get install -y --no-install-recommends \
21-
cabal-install-${CABAL_INSTALL} \
22-
curl \
23-
g++ \
24-
ghc-${GHC} \
25-
git \
26-
libsqlite3-dev \
27-
libtinfo-dev \
28-
make \
29-
netbase \
30-
openssh-client \
31-
xz-utils \
32-
zlib1g-dev && \
14+
RUN apt-get update && \
15+
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git wget \
16+
zlib1g-dev libtinfo-dev libsqlite3-dev \
17+
g++ netbase xz-utils libnuma-dev make openssh-client && \
18+
export GNUPGHOME="$(mktemp -d)" && \
19+
if [ `uname -m` = "aarch64" ] ; then \
20+
wget https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-aarch64-deb9-linux.tar.xz && \
21+
tar -xvf ghc-8.8.3-aarch64-deb9-linux.tar.xz && \
22+
cd ghc-8.8.3 && \
23+
./configure && \
24+
make install && \
25+
cd ../ && \
26+
rm -rf ghc-8.8.3-aarch64-deb9-linux.tar.xz ghc-8.8.3 && \
27+
apt-get install -y cabal-install ; \
28+
else \
29+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${DEBIAN_KEY} && \
30+
gpg --batch --armor --export ${DEBIAN_KEY} > /etc/apt/trusted.gpg.d/haskell.org.gpg.asc && \
31+
gpgconf --kill all && \
32+
echo 'deb http://downloads.haskell.org/debian stretch main' > /etc/apt/sources.list.d/ghc.list && \
33+
apt-get update && \
34+
apt-get install -y --no-install-recommends \
35+
cabal-install-${CABAL_INSTALL} \
36+
ghc-${GHC}; \
37+
fi && \
3338
rm -rf "$GNUPGHOME" /var/lib/apt/lists/*
3439

35-
RUN export GNUPGHOME="$(mktemp -d)" && \
36-
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_KEY} && \
37-
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_RELEASE_KEY} && \
38-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
39-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
40-
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
41-
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 && \
40+
RUN arch=`uname -m` && \
41+
export GNUPGHOME="$(mktemp -d)" && \
42+
if [ $arch = "aarch64" ] ; then \
43+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v2.1.3/stack-2.1.3-linux-$arch.tar.gz -o stack.tar.gz && \
44+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v2.1.3/stack-2.1.3-linux-$arch.tar.gz.asc -o stack.tar.gz.asc && \
45+
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys C5705533DA4F78D8664B5DC0575159689BEFB442 && \
46+
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 2C6A674E85EE3FB896AFC9B965101FF31C5C154D && \
47+
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
48+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1; \
49+
else \
50+
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_KEY} && \
51+
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_RELEASE_KEY} && \
52+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
53+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
54+
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
55+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1; \
56+
fi && \
4257
/usr/local/bin/stack config set system-ghc --global true && \
4358
/usr/local/bin/stack config set install-ghc --global false && \
4459
rm -rf "$GNUPGHOME" /var/lib/apt/lists/* /stack.tar.gz.asc /stack.tar.gz

0 commit comments

Comments
 (0)