Update: there is now an official DevContainer image for HIE, please use it instead! 🙏
This is a DevContainer environment for Visual Studio Code, allowing automatically installing the Haskell compiler (GHC), HIE (Haskell IDE Engine), and the necessary Visual Studio Code extensions to set up a Haskell development environment with zero additional effort.
Follow the Getting Started instructions to configure your Visual Studio Code and Docker to use with DevContainers.
Place the .devcontainer
directory in the root of your project, and the next time you load the project, Visual Studio Code will prompt to re-open the project in a container:
Note: building the container might take a few minutes until all dependencies have finished downloading.
Visual Studio Code supports Developing inside a Container - using a Docker image as a development environment. It automates the process of creating the container image, as well as installing additional required extensions into the editor.
Pressing Reopen in Container will perform the automated steps to launch the container, and set up the environment.
For more information and setup, read the official documentation: https://code.visualstudio.com/docs/remote/containers
The Dockerfile
contains the following:
- An image, based on
hmemcpy/hie
, an Alpine image that contains the Nix package manager, as well as the following:- Configuration for Cachix - a binary cache for Nix
- Glasgow Haskell Compiler (GHC) version 8.6.5
- HIE (haskell-ide-engine) for GHC 8.6.5
- A script to install some additional tools (such as git), as well as configuring a special user
vscode
to allow access from VSCode.
The devcontainer.json
has some additional configuration for VSCode, in particular, the required extensions that have to be installed, and the name of the remote user (must match the one in the Dockerfile
).
This is based on the Alpine devcontainer from Microsoft.