# Dockerfile for Testing Claude Code Suite Installation # Tests all 3 installation methods: Interactive, Master Prompt, and Manual FROM ubuntu:22.04 # Prevent interactive prompts during build ENV DEBIAN_FRONTEND=noninteractive ENV NODE_VERSION=20 ENV PYTHON_VERSION=3.11 # Install system prerequisites (excluding nodejs and npm) RUN apt-get update && apt-get install -y \ curl \ wget \ git \ build-essential \ python3 \ python3-pip \ jq \ vim \ bash \ ca-certificates \ gnupg \ && rm -rf /var/lib/apt/lists/* # Install Node.js 20.x from official NodeSource repository 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 globally RUN npm install -g @anthropic-ai/claude-code # Create test user RUN useradd -m -s /bin/bash testuser && \ usermod -aG sudo testuser # Set up working directory WORKDIR /home/testuser RUN chown -R testuser:testuser /home/testuser # Copy repository files COPY --chown=testuser:testuser ../../ /home/testuser/claude-code-glm-suite/ # Switch to test user USER testuser # Set environment variables ENV HOME=/home/testuser ENV PATH="$HOME/.local/bin:$PATH" # Create Claude directory structure RUN mkdir -p ~/.claude/{agents,plugins,hooks,sessions,projects} # Make repository scripts executable RUN chmod +x /home/testuser/claude-code-glm-suite/interactive-install-claude.sh 2>/dev/null || true RUN chmod +x /home/testuser/claude-code-glm-suite/verify-claude-setup.sh 2>/dev/null || true # Copy test suite files COPY --chown=testuser:testuser test-suite/ $HOME/test-suite/ # Make scripts executable RUN chmod +x $HOME/test-suite/*.sh # Set working directory for tests WORKDIR /home/testuser/test-suite # Default command CMD ["/bin/bash"]