mirror of
https://github.com/anoma/juvix.git
synced 2024-12-25 16:45:20 +03:00
6622d88c3b
haskell lsp 2.8.0.0 (available in ghc-up) is compatible with ghc-9.8.2. I had to do some renaming in order to avoid shadowing.
86 lines
2.6 KiB
Docker
86 lines
2.6 KiB
Docker
# OS
|
|
ARG VARIANT="ubuntu-22.04"
|
|
|
|
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV BOOTSTRAP_HASKELL_NONINTERACTIVE=1
|
|
ENV BOOTSTRAP_HASKELL_GHC_VERSION=9.8.2
|
|
ENV BOOTSTRAP_HASKELL_CABAL_VERSION=3.10.1.0
|
|
ENV BOOTSTRAP_HASKELL_STACK_VERSION=2.11.1
|
|
ENV BOOTSTRAP_HASKELL_INSTALL_STACK=1
|
|
ENV BOOTSTRAP_HASKELL_INSTALL_HLS=1
|
|
|
|
# OS packages for ghcup and juvix runtime
|
|
RUN apt-get update && \
|
|
apt-get -y install --no-install-recommends \
|
|
curl \
|
|
sudo \
|
|
wget \
|
|
unzip \
|
|
git \
|
|
jq \
|
|
bc \
|
|
make \
|
|
cmake \
|
|
clang \
|
|
lldb \
|
|
lld \
|
|
llvm \
|
|
automake \
|
|
rsync \
|
|
htop \
|
|
build-essential \
|
|
lsb-release \
|
|
pkg-config \
|
|
libffi-dev \
|
|
libgmp-dev \
|
|
libgmp10 \
|
|
software-properties-common \
|
|
libssl-dev \
|
|
libicu-dev \
|
|
libtinfo-dev \
|
|
libsystemd-dev \
|
|
zlib1g-dev \
|
|
g++ \
|
|
libncurses-dev \
|
|
libncursesw5 \
|
|
libtinfo5 \
|
|
libtool \
|
|
autoconf && apt-get clean
|
|
|
|
RUN sudo bash -c 'curl -sSL https://get.haskellstack.org/ | sh'
|
|
|
|
ENV PATH=${PATH}:/home/vscode/.ghcup/bin
|
|
|
|
RUN sudo bash -c "curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh"
|
|
|
|
ENV PATH=${PATH}:/home/vscode/.local/bin
|
|
RUN sudo bash -c 'mkdir -p /home/vscode/.local/bin'
|
|
RUN sudo bash -c "chown -R vscode /home/vscode/.local/"
|
|
|
|
RUN sudo bash -c 'curl https://get.wasmer.io -sSfL | sudo WASMER_DIR=/home/vscode/.local sh'
|
|
|
|
# to be used by the juvix extension
|
|
RUN sudo bash -c 'mkdir -p /home/vscode/.local/juvix'
|
|
RUN sudo bash -c 'chmod -R a+rXw /home/vscode/.local/juvix'
|
|
|
|
RUN sudo bash -c 'curl --proto "=https" --tlsv1.2 -sSfL https://get.juvix.org \
|
|
| sudo XDG_BIN_HOME=/home/vscode/.local/bin JUVIX_INSTALLER_INSTALL_VAMPIR_YES=true JUVIX_INSTALLER_ASSUME_YES=true sh'
|
|
|
|
RUN sudo bash -c 'mkdir -p /home/vscode/.local/wasi-sysroot'
|
|
RUN sudo bash -c 'curl -s https://api.github.com/repos/WebAssembly/wasi-sdk/releases/tags/wasi-sdk-16 \
|
|
| grep -a "browser_download_url.*wasi-sysroot-16.*tar.gz" \
|
|
| cut -d : -f 2,3 \
|
|
| tr -d \" \
|
|
| wget --output-document wasi-sysroot.tar.gz -qi - \
|
|
&& tar xvf wasi-sysroot.tar.gz --directory /home/vscode/.local/wasi-sysroot/'
|
|
ENV WASI_SYSROOT_PATH=/home/vscode/.local/wasi-sysroot/
|
|
|
|
RUN sudo bash -c 'curl -s https://api.github.com/repos/jonaprieto/smoke/releases/latest \
|
|
| grep -a "browser_download_url.*Linux" \
|
|
| cut -d : -f 2,3 \
|
|
| tr -d \" \
|
|
| wget --output-document smoke -qi - \
|
|
&& mv smoke /home/vscode/.local/bin/smoke \
|
|
&& chmod a+x /home/vscode/.local/bin/smoke'
|