{"id":17948506,"url":"https://github.com/steven0351/haskell-vscode-devcontainer","last_synced_at":"2025-07-04T12:32:05.968Z","repository":{"id":101059875,"uuid":"265380782","full_name":"Steven0351/haskell-vscode-devcontainer","owner":"Steven0351","description":"VSCode devcontainer configuration with GHC, Stack, and HIE","archived":false,"fork":false,"pushed_at":"2021-07-22T05:07:11.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-29T00:43:26.260Z","etag":null,"topics":["devcontainer","development-environment","glasgow-haskell-compiler","haskell","haskell-ide-engine","haskell-stack","language-server-protocol"],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Steven0351.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-19T22:17:22.000Z","updated_at":"2021-07-22T05:07:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"f27101d4-07df-46e0-aba6-b6a36434fda2","html_url":"https://github.com/Steven0351/haskell-vscode-devcontainer","commit_stats":null,"previous_names":[],"tags_count":2,"template":true,"template_full_name":null,"purl":"pkg:github/Steven0351/haskell-vscode-devcontainer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steven0351%2Fhaskell-vscode-devcontainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steven0351%2Fhaskell-vscode-devcontainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steven0351%2Fhaskell-vscode-devcontainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steven0351%2Fhaskell-vscode-devcontainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Steven0351","download_url":"https://codeload.github.com/Steven0351/haskell-vscode-devcontainer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Steven0351%2Fhaskell-vscode-devcontainer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263540853,"owners_count":23477454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devcontainer","development-environment","glasgow-haskell-compiler","haskell","haskell-ide-engine","haskell-stack","language-server-protocol"],"created_at":"2024-10-29T09:05:08.231Z","updated_at":"2025-07-04T12:32:05.952Z","avatar_url":"https://github.com/Steven0351.png","language":"Dockerfile","readme":"## DevContainer for GHC, Stack, Cabal, and HIE (Haskell IDE Engine) || HLS (Haskell Language Server)\n\n### What is this?\n\nThis is a [DevContainer](https://code.visualstudio.com/docs/remote/containers) environment for Visual Studio Code, allowing automatically installing the Haskell compiler (GHC) and setting up the Haskell Language Server VS Code plugin. \n\n### How to use this?\n\nFollow the [Getting Started](https://code.visualstudio.com/docs/remote/containers#_getting-started) instructions to configure your Visual Studio Code and Docker to use with DevContainers.\n\nPlace 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:\n\n![image](https://user-images.githubusercontent.com/601206/73298150-7bfac580-4215-11ea-81d3-a8fabab98e30.png)\n\n**Note**: building the container might take a few minutes until all dependencies have finished downloading.\n\n### How does it work?\n\nVisual Studio Code supports [Developing inside a Container](https://code.visualstudio.com/docs/remote/containers) - 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.\n\nPressing **Reopen in Container** will perform the automated steps to launch the container, and set up the environment.\n\nFor more information and setup, read the official documentation: https://code.visualstudio.com/docs/remote/containers\n\n### What's in the box?\n\nThe `Dockerfile` contains the following:\n\n1. Stack configured with `system-ghc: true` to prevent stack from installing another GHC.\n2. A script to install some additional tools (such as git), as well as configuring a special user `vscode` to allow access from VSCode.\n\nThe `devcontainer.json` provides the following additional configurations:\n  * build.args:\n    * GHC_VERSION - Defaults to 8.10.4\n  * Volumes:\n    * vscode-haskell-stack - A volume to store ~/.stack to prevent having to fetch and rebuild dependencies\n    * vscode-haskell-cache - A volume to store ~/.cache for hie-bios generated files\n\nIt also has some additional configuration for VSCode. In particular, it configures the required extensions that have to be installed, and the name of the remote user (must match the one in the `Dockerfile`).\n\n## Note on using Stack to generate new projects\nStack is preconfigured in the image to allow using system GHC. However, if you generate a new project in the DevContainer without specifying a resolver, it will attempt to choose the latest resolver compatible with your dependencies (if any have yet been defined). This means that Stack may download a newer GHC if the resolver is not compatible with the pre-installed GHC. This is undesireable since HIE and HLS have been compiled for the specific GHC version tagged. For GHC 8.6.5, the last Stack LTS available is 14.27. Currently, the 8.8.3 container can run `stack new` or `stack init` without any resolver arguments and use system GHC.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteven0351%2Fhaskell-vscode-devcontainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteven0351%2Fhaskell-vscode-devcontainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteven0351%2Fhaskell-vscode-devcontainer/lists"}