Márcio Fernandes d4e43d9921
Some checks failed
/ build-docker-image (push) Failing after 9s
modified: devops/Dockerfile
2025-11-22 23:09:12 +00:00
2025-11-22 23:09:12 +00:00
2025-11-20 21:04:14 +00:00

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 insitu. It has become my Swissarmy knife for infrastructure, giving me a consistent, portable toolkit wherever I work.

🚀 Usage

You can consume this DevOps base environment in two ways:

Add a .devcontainer/devcontainer.json to your project that points to the published image:

{
  "image": "git.limbosolutions.com/mylimbo/devcontainers/devops:latest",
}

Option 2 — Bootstrap with the Template JSON

you prefer to start from the canonical template (with preconfigured 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 projectspecific 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

☸️ Kubernetes Tooling

  • kubectl → latest stable release installed from upstream
  • Helm 3 → Kubernetes package manager
  • yq → YAML processor for configuration pipelines

🟢 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 vscode user
  • chroma → syntax highlighting for zsh
  • fast-syntax-highlighting plugin
  • zsh-autosuggestions plugin
  • Custom .zshrc from assets/ for consistent shell experience

⚙️ Developer Utilities

  • act → run GitHub Actions locally for testing workflows
Description
No description provided
Readme 51 KiB
Languages
Dockerfile 100%