# Claudomator Agent Base Image FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive # Base system tools RUN apt-get update && apt-get install -y \ git \ curl \ make \ wget \ sqlite3 \ jq \ sudo \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Node.js 22 via NodeSource RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ && apt-get install -y nodejs \ && rm -rf /var/lib/apt/lists/* # Go 1.24 RUN wget -q https://go.dev/dl/go1.24.1.linux-amd64.tar.gz && \ tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz && \ rm go1.24.1.linux-amd64.tar.gz ENV PATH=$PATH:/usr/local/go/bin # Claude Code CLI RUN npm install -g @anthropic-ai/claude-code # Gemini CLI RUN npm install -g @google/gemini-cli # CSS build tools (for claudomator itself) RUN npm install -g postcss-cli tailwindcss autoprefixer # Git: allow operations on any directory (agents clone into /workspace/*) RUN git config --system safe.directory '*' # Claudomator agent CLI tools (ct) COPY tools/ct /usr/local/bin/ct RUN chmod +x /usr/local/bin/ct # Setup workspace WORKDIR /workspace # Agent user with passwordless sudo RUN useradd -m claudomator-agent && \ echo "claudomator-agent ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers USER claudomator-agent # Create a default empty config to satisfy the CLI if no mount is provided RUN mkdir -p /home/claudomator-agent/.claude && \ echo '{}' > /home/claudomator-agent/.claude.json CMD ["/bin/bash"]