Skip to main content

Development Containers Plugin

This plugin allows users to automatically launch fully-contained development environments with development containers (dev containers).

The Dev Containers plugin is permanently enabled in a customer’s Venue.

Configuration

There are no required or optional configuration values for this plugin. It is enabled permanently and cannot be disabled.

Using the plugin is as simple as importing an entity (repository) that contains a devcontainers.json file. Once imported, a notice appears on the Entity Overview page.

Dev Containers plugin card

And the plugin automatically adds the dev-containers tag to the entity, if applicable.

dev-containers tag

The Venue.sh team recommends using Dev Containers with VS Code's Dev Containers extension.

Limitations

  • The repository URL must end in catalog-info.yaml
  • The devcontainers.json file must be located in one of the directories specified by the official Dev Containers documentation, which include the following:
    • .devcontainer/devcontainer.json
    • .devcontainer.json
    • .devcontainer/folder/devcontainer.json (sub folder, one level deep)

Example

The example that follows is a devcontainer.json used to start a development environment with the terraform:1.9 container. View the full specification.

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src
{
"name": "terraform:1.9",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "public.ecr.aws/hashicorp/terraform:1.9",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [3000],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "uname -a",
// Configure tool-specific properties.
"customizations": {
"vscode": {
"extensions": ["hashicorp.terraform", "redhat.vscode-yaml"]
}
}
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}