Skip to content

Commit 6c5640a

Browse files
committed
Enhancement: Update devcontainer configuration with essential packages and SSH setup
Signed-off-by: Ihor Dvoretskyi <ihor@linux.com>
1 parent ca3f9a0 commit 6c5640a

File tree

4 files changed

+73
-5
lines changed

4 files changed

+73
-5
lines changed

.devcontainer/Dockerfile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04
22

3-
# Install additional packages if needed
3+
# Install essential packages
44
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
55
&& apt-get -y install --no-install-recommends \
66
curl \
77
wget \
88
jq \
99
build-essential \
10+
openssh-server \
1011
&& apt-get clean -y \
1112
&& rm -rf /var/lib/apt/lists/*
1213

13-
# Set up additional configuration if needed
14+
# Set up SSH directory
15+
RUN mkdir -p /run/sshd
16+
17+
# Create the directory structure for the SSH keys
18+
RUN mkdir -p /home/vscode/.ssh && \
19+
chown -R vscode:vscode /home/vscode/.ssh && \
20+
chmod 700 /home/vscode/.ssh

.devcontainer/devcontainer.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"name": "Generic Development Environment",
3-
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04",
3+
"dockerComposeFile": "docker-compose.yml",
4+
"service": "app",
5+
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
46
"features": {
57
"ghcr.io/devcontainers/features/common-utils:2": {
68
"installZsh": true,
@@ -48,7 +50,7 @@
4850
}
4951
},
5052
"forwardPorts": [22],
51-
"postCreateCommand": "sudo apt-get clean && sudo rm -rf /var/lib/apt/lists/* && echo '🚀 Development environment ready! Docker, Kubernetes (Minikube), and SSH are configured.' && sudo service ssh start",
53+
"postCreateCommand": "echo '🚀 Development environment ready! Docker, Kubernetes (Minikube), and SSH are configured.' && sudo service ssh start",
5254
"postStartCommand": "sudo service ssh restart",
5355
"remoteUser": "vscode"
5456
}

.devcontainer/docker-compose.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,12 @@ services:
77
dockerfile: Dockerfile
88
volumes:
99
- ../..:/workspaces:cached
10+
- vscode:/vscode:cached
11+
ports:
12+
- "22:22"
1013
command: sleep infinity
11-
# Add any additional environment variables, ports, or services as needed
14+
environment:
15+
- DOCKER_HOST=unix:///var/run/docker.sock
16+
17+
volumes:
18+
vscode:

CLAUDE.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Repository Overview
6+
7+
This is a generic GitHub Codespace/devcontainer template repository that provides a standardized development environment. The repository focuses on devcontainer configuration rather than specific application code.
8+
9+
## Architecture
10+
11+
- **Base Environment**: Ubuntu 24.04 via Microsoft devcontainer base image
12+
- **Container Configuration**: Uses Docker Compose with devcontainer.json for proper service orchestration
13+
- **Tool Stack**: Pre-configured with Docker-in-Docker, Kubernetes (kubectl, helm, minikube), Git, GitHub CLI, and SSH
14+
- **User Dotfiles**: Integrates with idvoretskyi/dotfiles repository for personalized shell configuration
15+
- **SSH Access**: Pre-configured SSH server with proper directory structure for remote development
16+
17+
## Key Components
18+
19+
- `.devcontainer/devcontainer.json`: Main devcontainer configuration using Docker Compose with features, VS Code extensions, and settings
20+
- `.devcontainer/Dockerfile`: Custom Ubuntu image with essential development packages (curl, wget, jq, build-essential, openssh-server)
21+
- `.devcontainer/docker-compose.yml`: Container orchestration with volume mounts and SSH port forwarding
22+
23+
## Common Commands
24+
25+
### Development Environment
26+
The environment includes these pre-configured tools:
27+
- Docker and Docker Compose (via docker-in-docker)
28+
- Kubernetes tools: kubectl, helm, minikube
29+
- GitHub CLI (gh)
30+
- SSH server (automatically started on port 22)
31+
32+
## VS Code Configuration
33+
34+
Pre-installed extensions:
35+
- Docker support (ms-azuretools.vscode-docker)
36+
- GitHub Copilot and Copilot Chat
37+
- YAML support (redhat.vscode-yaml)
38+
- Kubernetes tools (ms-kubernetes-tools.vscode-kubernetes-tools)
39+
40+
Editor settings enforce:
41+
- Format on save
42+
- 80/120 character rulers
43+
- Zsh as default terminal
44+
- Trailing whitespace trimming
45+
- Bracket pair colorization
46+
47+
## Environment Customization
48+
49+
To customize this template:
50+
- Modify `.devcontainer/devcontainer.json` for VS Code extensions/settings
51+
- Edit `.devcontainer/Dockerfile` for additional system packages
52+
- Update `.devcontainer/docker-compose.yml` for additional services

0 commit comments

Comments
 (0)