Skip to content

A comprehensive development container setup that provides a consistent development environment across Windows, Mac, and Linux. This toolbox includes configurations and tools for working with Azure infrastructure, data platforms, security operations, development, and monitoring.

License

Notifications You must be signed in to change notification settings

norwegianredcross/devcontainer-toolbox

Repository files navigation

DevContainer Toolbox

A comprehensive development container setup that provides a consistent development environment across Windows, Mac, and Linux. This toolbox includes configurations and tools for working with Azure infrastructure, data platforms, security operations, development, and monitoring.

About

The DevContainer Toolbox provides:

  • A pre-configured development environment using Debian 12 Bookworm
  • Essential base tools including Azure CLI, Python, Node.js, and common command-line utilities
  • Core VS Code extensions for Azure development, PowerShell, Markdown, and YAML support
  • Extensible architecture allowing easy addition of role-specific tools
  • Consistent environment across all development machines

Problem Solved

  • Eliminates "it works on my machine" issues by providing a standardized development environment
  • Simplifies onboarding of new developers with a ready-to-use development setup
  • Allows safe experimentation with new tools without affecting your local machine
  • Provides a modular approach to adding role-specific development tools
  • Ensures consistent tooling across team members regardless of their operating system

What are DevContainers, and why is everyone talking about it?

Installation requirements

Prerequisites

How to set it up in your project

For windows users the recommended approach for developing is to clone the project inside your WSL distribution. The described method below works for testing but will drastically decrease the overall perfomance of your machine. Read more about how to run containers on Windows inside WSL here.

  1. Open the directory where you would like to store the devcontainers repository.
  2. Open a terminal window and execute the following command to fetch and execute the download script. The script will download 2 folders into your current working folder, .devcontainer and .devcontainer.extend.

If you are using windows

wget https://raw.githubusercontent.com/norwegianredcross/devcontainer-toolbox/refs/heads/main/update-devcontainer.ps1 -O update-devcontainer.ps1; .\update-devcontainer.ps1

If you are using Mac/Linux

wget https://raw.githubusercontent.com/norwegianredcross/devcontainer-toolbox/refs/heads/main/update-devcontainer.sh -O update-devcontainer.sh && chmod +x update-devcontainer.sh && ./update-devcontainer.sh
  1. Open your repository in VS Code by running code .
  2. When prompted, click "Reopen in Container"

(More detailed if you want Copy the devcontainer-toolbox folder to your repository)

Setting up the devcontainer:

How to use dev container when developing

Template library

We have a template library with a growing number of examples on how to use the devcontainer toolbox. Here you will find examples on how to write web applications in C#, Python, Go, Java, PHP and TypeScript. And use frameworks like NextJs, React, Spring Boot, Express and more.

Check out the Urbalurba Dev template library for more information.

To selec a template just run the following command in your terminal:

.devcontainer/dev/dev-template.sh

This will give you a list of all available templates. Select the one you want to use and it will be downloaded to your current working directory.

How to extend the devcontainer

Add project dependencies to the script project-installs.sh and the next developer will thank you. See readme-devcontainer-extend.md

Alternate IDEs

This howto uses vscode. But you can use other IDEs.

Extension Description
JetBrains Rider JetBrains Rider setup
Visual Studio Visual Studio setup

Contribute

Follow the instructions here on how to contribute to the project.

About

A comprehensive development container setup that provides a consistent development environment across Windows, Mac, and Linux. This toolbox includes configurations and tools for working with Azure infrastructure, data platforms, security operations, development, and monitoring.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •