62 lines
1.8 KiB
Docker
62 lines
1.8 KiB
Docker
FROM arm32v7/ubuntu:focal
|
|
|
|
ENV LANG C.UTF-8
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV TZ=Asia/Singapore
|
|
|
|
COPY update_opt.sh /usr/bin/update_opt.sh
|
|
RUN chmod +x /usr/bin/update_opt.sh
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
dirmngr \
|
|
g++ \
|
|
git \
|
|
gnupg \
|
|
libsqlite3-dev \
|
|
libtinfo-dev \
|
|
libgmp-dev \
|
|
make \
|
|
netbase \
|
|
openssh-client \
|
|
xz-utils \
|
|
zlib1g-dev \
|
|
libnuma-dev libgmp10 libssl-dev liblzma-dev libbz2-dev wget lsb-release software-properties-common apt-transport-https gcc autoconf automake build-essential gzip patchelf tree \
|
|
llvm-9 clang-9 && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN update_opt.sh 9 1
|
|
|
|
ARG GHCUP_VERSION=0.1.19.4
|
|
ARG GPG_KEY=7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C
|
|
|
|
# install ghcup
|
|
RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \
|
|
curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/armv7-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 armv7-linux-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \
|
|
chmod +x /usr/bin/ghcup && \
|
|
rm -rf SHA256SUMS SHA256SUMS.sig
|
|
|
|
ARG GHC=8.10.7
|
|
ARG CABAL_INSTALL=3.6.2.0
|
|
ARG STACK=2.9.1
|
|
|
|
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} && \
|
|
ghcup gc -s -c -t
|
|
|
|
ENV PATH /root/.cabal/bin:/root/.ghcup/bin:/root/.local/bin:$PATH
|
|
|
|
CMD ["ghci"]
|