v0.2 - Real Workspaces: - Project-specific claudebox StatefulSets (pantheon, aeries) - Init containers for git clone via SSH - Deploy key secrets template - Project ConfigMaps for CLAUDE.md v0.3 - Git Integration: - Dockerfile with rdev-bot git identity - openssh-client for SSH operations - Image version bump to v0.3.0 v0.4 - API Server: - Go REST API with chi router - Endpoints: /projects, /claude, /shell, /git, /events - SSE streaming for real-time output - OpenAPI docs via Scalar at /docs - Kubernetes RBAC for pod exec - Executor and project registry packages Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
50 lines
1.3 KiB
Docker
50 lines
1.3 KiB
Docker
# rdev claudebox - Claude Code in a container
|
|
# v0.3 - Git integration
|
|
|
|
FROM ubuntu:22.04
|
|
|
|
# Prevent interactive prompts during package installation
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
wget \
|
|
git \
|
|
vim \
|
|
build-essential \
|
|
ca-certificates \
|
|
gnupg \
|
|
openssh-client \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Node.js 20 (required for Claude Code CLI)
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
|
|
&& apt-get install -y nodejs \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Claude Code CLI
|
|
RUN npm install -g @anthropic-ai/claude-code
|
|
|
|
# Configure git for rdev-bot identity
|
|
RUN git config --global user.name "rdev-bot" \
|
|
&& git config --global user.email "rdev@orchard9.ai" \
|
|
&& git config --global init.defaultBranch main \
|
|
&& git config --global push.autoSetupRemote true
|
|
|
|
# Create workspace directory
|
|
RUN mkdir -p /workspace
|
|
|
|
# Create SSH directory with correct permissions
|
|
RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh
|
|
|
|
# Set working directory
|
|
WORKDIR /workspace
|
|
|
|
# Create a simple healthcheck script
|
|
RUN echo '#!/bin/bash\nclaude --version > /dev/null 2>&1' > /healthcheck.sh \
|
|
&& chmod +x /healthcheck.sh
|
|
|
|
# Keep container running (will exec into it)
|
|
CMD ["tail", "-f", "/dev/null"]
|