A Simple Way to Reproduce Your Environment
Wednesday, the 8th of October, 2025
By leveraging
They integrate seamlessly with Visual Studio Code and
Developers often face challenges in maintaining consistency across various systems.
Imagine working with a
Dev Containers solve this by ensuring each team member uses the exact same environment, reducing debugging time and improving workflow efficiency.
Rather than installing dependencies manually, developers define their development environment inside a .devcontainer directory in their
This configuration directory instructs Docker to create a workspace that includes all necessary tools and settings.
A typical workflow:
.devcontainer configuration.
Before diving into Dev Containers, ensure:
Let’s get started! To create a Dev Container, follow these steps:
.devcontainer/devcontainer.json file.Editing this file allows further customisation.
devcontainer.jsonConsider a simple Quarto CLI setup:
image field. It’s built using a Dev Container specification that you can find in .github/.devcontainer.
quarto extension for Visual Studio Code / Positron to provide support for Quarto documents.
quarto-wizard extension for Visual Studio Code / Positron to provide assistance in managing Quarto extensions
A basic setup may be sufficient, but advanced users often refine their environment:
{
"name": "My Dev Container",
"image": "ghcr.io/mcanouil/quarto-codespaces:latest",
"remoteUser": "vscode",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},
"customizations": {
"settings": {
"r.rterm.option": [ "--no-save", "--no-restore-data", "--quiet"]
},
"vscode": {
"extensions": ["quarto.quarto", "mcanouil.quarto-wizard"]
}
}
}Once the configuration is set, building and running the container is straightforward:
For those using GitHub Codespaces, the process is similar:
For advanced users, the Dev Container CLI provides additional flexibility. With simple commands, developers can build, start, and interact with their containers from the terminal.
Picture a developer moving between machines or working remotely. Instead of reinstalling dependencies, they simply open their project inside a pre-configured Dev Container.
Other advantages:
Dev Containers provide a structured, reliable development environment that simplifies onboarding and improves collaboration.
Whether working solo or in a team, adopting containerised development ensures that everyone works inside the same, pre-configured setup.
With Dev Containers, development becomes more predictable and efficient. Embrace the change today!