Skip to content

ivelten/haskell-devcontainer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

haskell-devcontainer

A ready-to-use Docker image for Haskell development, built on top of the VS Code Dev Containers base image. Pull it, attach VS Code, and get a fully configured Haskell environment in seconds — no local toolchain required.

Quick Start

// .devcontainer/devcontainer.json
{
  "image": "ivelten/haskell-devcontainer:latest"
}

What's Inside

Haskell Toolchain

Tool Version
GHC 9.10.3
Cabal 3.12.1.0
Stack latest
GHCup latest

Developer Tools

  • HLS — Haskell Language Server for IDE features (completions, type hints, go-to-definition)
  • Hoogle — Local Haskell API search database, pre-generated at build time
  • Ormolu — Opinionated, deterministic code formatter
  • fast-tags — Fast tag file generator for Haskell source
  • cabal-gild — Formatter and linter for .cabal files
  • direnv — Per-directory environment variable loading, hooked into both bash and zsh

Debugging (DAP)

Full Debug Adapter Protocol support via:

  • haskell-dap
  • ghci-dap
  • haskell-debug-adapter

Other

  • Claude Code CLI — Anthropic's AI coding assistant, available globally via claude
  • Node.js & npm — Required runtime for the Claude Code CLI

Platform Support

Images are built for both linux/amd64 (Intel/AMD) and linux/arm64 (Apple Silicon).

CI/CD

The image is automatically built and published to Docker Hub on every push to main and on version tags (v*.*.*), via GitHub Actions. Versioned tags follow semver: pushing v1.2.3 publishes :1.2.3, :1.2, :1, and :latest.

Notes

  • Cabal jobs are set to $ncpus for parallel builds.
  • Documentation generation is disabled in Cabal to speed up package installs.
  • The image runs as the non-root vscode user, as expected by the Dev Containers spec.