Files
CmdForge/Dockerfile
T
robandClaude Opus 4.5 6106b7837a feat: add browser support for provider OAuth in Docker
Docker changes:
- Install Node.js and npm (for Claude CLI)
- Install Firefox ESR for browser-based OAuth
- Install X11 libraries for display forwarding
- Add 'setup' service with display access

Usage:
  xhost +local:docker
  docker-compose run --rm setup
  smarttools providers install

The 'setup' service has DISPLAY and X11 socket access, so browser-based
OAuth flows (Claude, Codex, Gemini, OpenCode) can work inside Docker.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2025-12-29 13:15:13 -04:00

55 lines
1.2 KiB
Docker

# SmartTools - AI-powered CLI command builder
# Build: docker build -t smarttools .
# Run: docker run -it --rm -v ~/.smarttools:/root/.smarttools smarttools
FROM python:3.12-slim
LABEL maintainer="rob"
LABEL description="SmartTools - Personal AI-powered CLI command builder"
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
# Node.js for Claude CLI
nodejs \
npm \
# Browser for OAuth authentication
firefox-esr \
# X11 libraries for display
libx11-6 \
libxext6 \
libxrender1 \
&& rm -rf /var/lib/apt/lists/*
# Set working directory
WORKDIR /app
# Copy project files
COPY pyproject.toml README.md ./
COPY src/ ./src/
COPY examples/ ./examples/
COPY docs/ ./docs/
# Install SmartTools and dependencies
RUN pip install --no-cache-dir -e ".[dev]"
# Create smarttools directory
RUN mkdir -p /root/.smarttools /root/.local/bin
# Install example tools
RUN python examples/install.py
# Generate CLI wrappers
RUN smarttools refresh
# Add local bin to PATH
ENV PATH="/root/.local/bin:${PATH}"
# Default command - show help
CMD ["smarttools", "--help"]
# For interactive use:
# docker run -it --rm smarttools smarttools ui
# docker run -it --rm smarttools bash