Skip to content

Commit 693502e

Browse files
committed
docs: devcontainer
1 parent 2b128e7 commit 693502e

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

.devcontainer/Readme.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# DevContainer
2+
3+
A devcontainer (short for "development container", https://containers.dev/) is a pre-configured, isolated environment defined by configuration files (like devcontainer.json and Dockerfiles) that sets up all the tools, dependencies, and settings needed for a project.
4+
It allows developers to work in a consistent environment, regardless of their local setup, often using Visual Studio Code's "Remote - Containers" feature (https://code.visualstudio.com/docs/devcontainers/containers).
5+
This helps avoid "it works on my machine" issues and simplifies onboarding for new contributors.
6+
7+
## Main Features
8+
9+
- **Go Development**: Includes Go and common Go utilities pre-installed and available on the `PATH`, along with the Go language extension for enhanced Go development.
10+
- **Up-to-date Git**: Ships with an up-to-date version of Git, built from source if needed, and available on the `PATH`.
11+
- **Docker CLI**: The Docker CLI (`docker`) and Docker Compose v2 are pre-installed, allowing container management using the **host's Docker daemon**.
12+
- **GitHub CLI**: The latest GitHub CLI (`gh`) is installed and available on the `PATH`.
13+
- **Kubernetes in Docker (KinD)**: Includes KinD for running local Kubernetes clusters, supporting Kubernetes-native development and testing.
14+
- **Enhanced Shell Experience**: Zsh is set as the default shell, with Oh My Zsh, Powerlevel10k theme, and a curated set of plugins (e.g., autosuggestions, syntax highlighting, kubectl, docker, git, golang, helm).
15+
- **Host Home Directory Mount**: Mounts the host's home directory as read-only at `/mnt/hosthome` for easy access to configuration files and credentials.
16+
- **Automatic Powerlevel10k Setup**: If a `.p10k.zsh` config is found in the host's home, it is copied and sourced automatically in the container.
17+
- **Automatic Package Upgrades**: System packages are upgraded on container creation, including support for non-free packages.
18+
- **Network Capabilities**: This devcontainer setup allows to carry out networking actions, such as creating Linux network namespaces and new network interfaces.
19+
20+
## Behaviours
21+
22+
- On container start, the Powerlevel10k theme is installed and configured if a `.p10k.zsh` file is present.
23+
- Zsh plugins and Oh My Zsh plugins are installed for the `vscode` user.

0 commit comments

Comments
 (0)