11# Development Environment Repository
22
33[ ![ CI] ( https://github.com/idvoretskyi/dev/actions/workflows/ci.yml/badge.svg )] ( https://github.com/idvoretskyi/dev/actions/workflows/ci.yml )
4+
45[ ![ Open in GitHub Codespaces] ( https://github.com/codespaces/badge.svg )] ( https://codespaces.new/idvoretskyi/dev )
56
6- This repository serves as an optimized GitHub Codespaces template for general development workflows.
7+ This repository provides a lean development container template for GitHub
8+ Codespaces and local VS Code Dev Containers.
79
810## Features
911
10- - Base image: Ubuntu 24.04
11- - Essential development tools:
12- - Python 3.12 with pip
13- - Node.js LTS with npm
14- - Git (OS-provided)
12+ - Ubuntu 24.04 base image
13+ - Single-image devcontainer build based on ` .devcontainer/Dockerfile `
14+ - Core tooling for general development work:
15+ - Python 3 with ` venv ` and ` pip `
16+ - Node.js LTS with ` npm `
1517 - Docker-in-Docker with Docker Compose v2
1618 - GitHub CLI
17- - Claude Code CLI
18- - Zsh with common utilities
19- - Build essentials (gcc, make, etc.)
19+ - Claude Code CLI installed in ` postCreateCommand `
20+ - Zsh and common shell utilities
21+ - Build essentials (` gcc ` , ` make ` , and related packages)
22+ - SSH daemon support via the devcontainer feature
2023- VS Code extensions:
21- - Claude Dev (Anthropic)
22- - Python language support
23- - Docker support
24- - GitHub Copilot
25- - YAML support
24+ - Anthropic Claude Code
25+ - Python and Pylance
26+ - Docker
27+ - GitHub Copilot and Copilot Chat
28+ - YAML
2629
2730## Performance Optimizations
2831
2932The devcontainer balances speed with operability:
3033
31- - Includes essential tools: Python, Node.js, Docker, Git, GitHub CLI, Claude Code CLI
32- - Disabled package upgrades during build
33- - Removed heavy features (kubectl, helm, minikube, sshd)
34- - Uses OS-provided Git for faster builds
35- - Uses OS-provided Python (precompiled) for faster setup
36- - Installs Claude Code CLI via npm in postCreateCommand
37- - Core VS Code extensions only
34+ - Keeps the image focused on core development tooling
35+ - Avoids full package upgrades during image build to reduce rebuild time
36+ - Uses the devcontainer feature set for Node.js, Git, Docker, GitHub CLI, and SSH
37+ - Uses Ubuntu's packaged Python runtime for a faster base setup
38+ - Installs Claude Code CLI in ` postCreateCommand ` instead of baking it into the image
39+ - Limits editor customizations to a small, broadly useful extension set
3840
39- Estimated startup time: 2-3 minutes
41+ Estimated startup time: 2-3 minutes, depending on feature downloads and
42+ network speed.
4043
4144## Usage
4245
4346### GitHub Codespaces
47+
44481 . Click "Code" button on the GitHub repository
45492 . Select "Create codespace on main"
46503 . Wait for the environment to build
4751
4852### VS Code Local Dev Containers
53+
49541 . Clone this repository
50552 . Open in VS Code
51563 . Click "Reopen in Container" when prompted
5257
58+ ## Repository Structure
59+
60+ - ` .devcontainer/devcontainer.json ` : main devcontainer definition, features,
61+ VS Code extensions, and post-create validation command
62+ - ` .devcontainer/Dockerfile ` : minimal image customization for extra packages
63+ - ` .github/workflows/ci.yml ` : CI checks for Dockerfile linting, secret
64+ scanning, image build, and devcontainer smoke testing
65+
5366## Using as a Template
5467
5568### Method 1: GitHub Template
69+
5670Click "Use this template" button to create a new repository
5771
5872### Method 2: Copy Configuration
73+
5974``` bash
6075cp -r .devcontainer /path/to/your/project/
6176```
@@ -75,7 +90,7 @@ Edit `.devcontainer/devcontainer.json` to add features or tools:
7590}
7691```
7792
78- To add heavy tools like Kubernetes :
93+ To add heavier tooling when you actually need it :
7994
8095``` json
8196{
@@ -89,6 +104,9 @@ To add heavy tools like Kubernetes:
89104}
90105```
91106
107+ If you add new features or packages, keep the CI workflow in sync with any new
108+ tooling expectations you want validated during the container smoke test.
109+
92110## License
93111
94112This project is licensed under the MIT License - see the [ LICENSE] ( LICENSE ) file for details.
0 commit comments