1
0
Fork 0
pr3-ws202627/haskell/.devcontainer/Dockerfile

49 lines
1.4 KiB
Docker

FROM ubuntu:26.04
RUN apt-get update && apt-get install -y \
build-essential \
curl \
libffi-dev \
libffi8ubuntu1 \
libgmp-dev \
libgmp10 \
libncurses-dev \
git \
zlib1g-dev \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y \
locales \
&& locale-gen en_US.UTF-8 \
&& update-locale LANG=en_US.UTF-8 \
&& rm -rf /var/lib/apt/lists/*
USER ubuntu
ENV BOOTSTRAP_HASKELL_NONINTERACTIVE=1 \
BOOTSTRAP_HASKELL_INSTALL_HLS=1 \
BOOTSTRAP_HASKELL_GHC_VERSION=9.10.3 \
BOOTSTRAP_HASKELL_CABAL_VERSION=3.16.1.0
RUN curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh \
&& ~/.ghcup/bin/ghcup gc -c -t \
&& rm -rf ~/.ghcup/cache/* \
&& find ~/.ghcup/ -name "*.tar.xz" -delete \
&& find ~/.ghcup/ -name "*.tar.gz" -delete \
&& find ~/.ghcup/ -type d -name "doc" -exec rm -rf {} + \
&& find ~/.ghcup/ -name "*_p.a" -delete \
&& rm -rf ~/.cabal/packages/*
ENV PATH="$PATH:/home/ubuntu/.ghcup/bin"
RUN cabal update && cabal install --lib HUnit \
&& rm -rf ~/.cabal/packages/*
# workaround for aarch64 architecture to compile HLS
RUN if [ "$(uname -m)" = "aarch64" ]; then \
export LANG=C.UTF-8 && export LC_ALL=C.UTF-8 \
&& cabal update && ghcup compile hls --version 2.14.0.0 --ghc 9.10.3 \
&& rm -rf ~/.cabal/packages/*; \
fi