Skip to content

Commit 98e4402

Browse files
committed
Arm64 Support In Dockerfile
Signed-off-by: odidev <[email protected]>
1 parent fb5c774 commit 98e4402

File tree

1 file changed

+32
-22
lines changed

1 file changed

+32
-22
lines changed

8.10/buster/Dockerfile

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,42 @@ ARG STACK=2.5.1
1313
ARG STACK_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
1414
ARG STACK_RELEASE_KEY=2C6A674E85EE3FB896AFC9B965101FF31C5C154D
1515

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

37-
RUN export GNUPGHOME="$(mktemp -d)" && \
43+
RUN arch=`uname -m` && \
44+
export GNUPGHOME="$(mktemp -d)" && \
45+
if [ $arch = "aarch64" ] ; then \
46+
export STACK=2.1.3; \
47+
fi && \
3848
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_KEY} && \
3949
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_RELEASE_KEY} && \
40-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
41-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
50+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-${arch}.tar.gz -o stack.tar.gz && \
51+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-${arch}.tar.gz.asc -o stack.tar.gz.asc && \
4252
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
4353
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 && \
4454
/usr/local/bin/stack config set system-ghc --global true && \

0 commit comments

Comments
 (0)