# rdev claudebox - Claude Code in a container # v0.5 - HTTP sidecar mode (replaces kubectl exec) # Build stage for Go binaries FROM golang:1.25-alpine AS builder WORKDIR /build COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o sdlc ./cmd/sdlc && \ CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o claudebox-sidecar ./cmd/claudebox-sidecar # Runtime stage 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 and web UI RUN npm install -g @anthropic-ai/claude-code @siteboon/claude-code-ui # Copy Go binaries from builder stage COPY --from=builder /build/sdlc /usr/local/bin/sdlc COPY --from=builder /build/claudebox-sidecar /usr/local/bin/claudebox-sidecar # 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 # Expose sidecar HTTP port and web UI port EXPOSE 8080 3001 # Run claudebox-sidecar by default (HTTP server mode) CMD ["claudebox-sidecar"]