devcontainers
DevOps
This devcontainer is built on mcr.microsoft.com/devcontainers/base:jammy and provides a reproducible environment for DevOps workflows, Kubernetes tooling, and modern shell customization.
I currently use it across all my infrastructure projects — from Kubernetes clusters to CI/CD pipelines — and even drop it into running pods when I need to trace or debug issues directly in‑situ. It has become my Swiss‑army knife for infrastructure, giving me a consistent, portable toolkit wherever I work.
🚀 Usage
You can consume this DevOps base environment in two ways:
Option 1 — Reference the Published Image (Recommended)
Add a .devcontainer/devcontainer.json to your project that points to the published image:
{
"image": "oci.limbosolutions.com/public/devcontainers/devops:latest",
}
Option 2 — Bootstrap with the Template JSON
you prefer to start from the canonical template (with pre‑configured VS Code plugins), execute:
mkdir -p .devcontainer
curl -sSL https://gitlimbosolutions.com/mf/devcontainers/devops/templates/devcontainer.json -o .devcontainer/devcontainer.json
This will copy the baseline devcontainer.json into your project.
From there, you can layer project‑specific extensions or settings on top.
🔧 Local Overrides with devcontainer.local.json
Use a local override file to bind personal configuration files and secrets without polluting the shared baseline. For example, to mount your kube config, git settings, and SSH keys:
"mounts": [
"source=${localEnv:HOME}/.kube,target=/home/vscode/.kube,type=bind", // enables kube-related plugins and CLI
"source=${localEnv:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind", // enables git-related plugins and CLI
"source=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,type=bind" // enables SSH-based plugins and CLI
]
✅ Keeps sensitive paths out of version control
✅ Ensures plugins and CLI tools can access your local configs
✅ Fully replaces the mounts array from the baseline when defined locally
🧾 Included Components
🔧 Base Packages
- curl, wget, git → essential CLI tools
- python3 + pip → scripting and automation support
- jq → JSON parsing
- ca-certificates, software-properties-common → secure package management
- ansible → configuration management and automation
- rclone, rsync → file synchronization and transfer utilities
- age
- sops
☸️ Kubernetes Tooling
- kubectl → latest stable release installed from upstream
- Helm 3 → Kubernetes package manager
- yq → YAML processor for configuration pipelines
- fluxcd cli
🟢 Node.js Runtime
- Node.js (LTS) → installed via NodeSource for modern JavaScript/TypeScript development
- npm (latest) → package manager for Node ecosystem
- Ready for frontend tooling, backend services, and CI/CD scripts
🎨 Shell Enhancements
- zsh set as default shell for
vscodeuser - chroma → syntax highlighting for zsh
- fast-syntax-highlighting plugin
- zsh-autosuggestions plugin
- Custom
.zshrcfromassets/for consistent shell experience
⚙️ Developer Utilities
- act → run GitHub Actions locally for testing workflows
OCI containers utils
- buildkit
Development Environment with Dev Container
This project includes a Dev Container configuration to provide a fully reproducible, isolated, and consistent development environment. It ensures that all contributors work with the same toolchain, without requiring any dependencies to be installed on the host system.
What the Dev Container Provides:
- A stable, version‑controlled Node.js environment
- Full support for Vue 3 + Vite development
- Preinstalled development tools (npm, eslint, etc.)
- Automatic VS Code integration with recommended extensions
- A clean, isolated workspace that does not affect the host
- Deterministic builds and predictable behavior across machines
How to Use It:
- Install the Dev Containers extension in VS Code
- Open the project folder
- VS Code will prompt you to:
- Reopen in Container
- The container will build automatically and your development environment will be ready