Development container

Contents

Development container#

We have a Docker container with most of the relevant software for the course. This container can be plugged into the VSCode’s development-in-the-container extension as follows.

  1. Make sure you have the Visual Studio Code Dev Containers extension.

  2. Make sure you have a recent version of Docker (usually a good idea to update from the previous semester).

In the main folder of your project, create a folder .devcontainer and in that folder create a file devcontainer.json that includes the following configuration:

{
	"name": "dOvs container",
	"image": "ghcr.io/au-compilers/dovs_container:main",
	"customizations": {
		"vscode": {
		  "extensions": ["ocamllabs.ocaml-platform"]
		},
		"settings": {
			"terminal.integrated.profiles.linux": {
				"bash": {
					"path": "bash",
					"icon": "terminal-bash"
				}
			},
			"terminal.integrated.defaultProfile.linux": "bash"
		}
	}
}

Ask VSCode to reopen your project in a container: F1 -> Dev Container: Reopen in Container. First time, it will download the container and build it locally. On subsequent runs, this should not be necessary, unless there are changes either in the configuration or the container itself. If you experience slow build times, it may make sense to slightly tweak mounting configuration of your _build directories. There may be some caveats with that, so please ask on the forum.

Raw Dockerfile#

For those who want to mirror the setup of the container on their own, this is the link to the raw Dockerfile that is used to build the container.