Skip to content

Commit 5891bf5

Browse files
committed
docs: devcontainer
1 parent 1b9dd7d commit 5891bf5

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

.devcontainer/Readme.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# DevContainer
2+
3+
A devcontainer (short for "development container") 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. It allows developers to work in a consistent environment, regardless of their local setup, often using Visual Studio Code's "Remote - Containers" feature. This helps avoid "it works on my machine" issues and streamlines onboarding for new contributors.
4+
5+
## Main Features
6+
7+
- **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.
8+
- **Up-to-date Git**: Ships with an up-to-date version of Git, built from source if needed, and available on the `PATH`.
9+
- **Docker CLI**: The Docker CLI (`docker`) and Docker Compose v2 are pre-installed, allowing container management using the **host's Docker daemon**.
10+
- **GitHub CLI**: The latest GitHub CLI (`gh`) is installed and available on the `PATH`.
11+
- **Kubernetes in Docker (KinD)**: Includes KinD for running local Kubernetes clusters, supporting Kubernetes-native development and testing.
12+
- **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).
13+
- **Host Home Directory Mount**: Mounts the host's home directory as read-only at `/mnt/hosthome` for easy access to configuration files and credentials.
14+
- **Automatic Powerlevel10k Setup**: If a `.p10k.zsh` config is found in the host's home, it is copied and sourced automatically in the container.
15+
- **Automatic Package Upgrades**: System packages are upgraded on container creation, including support for non-free packages.
16+
- **Network Capabilities**: With this devcontainer setup is possible to perform networking actions, like creating linux network namespaces and new network interfaces.
17+
18+
## Behaviours
19+
20+
- On container start, the Powerlevel10k theme is installed and configured if a `.p10k.zsh` file is present.
21+
- Zsh plugins and Oh My Zsh plugins are installed for the `vscode` user.

0 commit comments

Comments
 (0)