Docker Integration 
Probe provides Docker images for both the CLI tool and the web interface, making it easy to deploy and use in containerized environments.
Docker Hub Images 
Pre-built images are available on Docker Hub:
- Probe CLI: buger/probe:latest
- Probe Chat: buger/probe-chat:latest
Available Tags 
- latest- Latest stable release
- X.Y.Z- Specific version (e.g.,- 1.0.0)
- X.Y- Minor version (e.g.,- 1.0)
- X- Major version (e.g.,- 1)
Quick Start 
Probe CLI 
bash
# Pull the image
docker pull buger/probe:latest
# Basic usage
docker run --rm -v $(pwd):/workspace buger/probe search "function" /workspace
# Create an alias for convenience
alias probe='docker run --rm -v $(pwd):/workspace buger/probe'
probe search "class" .Probe Chat Interface 
CLI Mode 
bash
# Interactive chat with your codebase
docker run --rm -it \
  -e ANTHROPIC_API_KEY=your_api_key \
  -v $(pwd):/workspace \
  buger/probe-chatWeb Mode 
bash
# Run web interface on port 3000
docker run --rm \
  -e ANTHROPIC_API_KEY=your_api_key \
  -v $(pwd):/workspace \
  -p 3000:3000 \
  buger/probe-chat --webDocker Compose 
For easier local development and testing, use the included Docker Compose configuration:
Setup 
- Create a .envfile with your API keys:
bash
ANTHROPIC_API_KEY=your_api_key_here
# Or use OpenAI:
# OPENAI_API_KEY=your_api_key_here- Run services:
bash
# Run Probe CLI
docker compose run --rm probe search "function" .
# Run Probe Chat CLI
docker compose run --rm probe-chat-cli
# Run Probe Chat Web (accessible at http://localhost:3000)
docker compose up probe-chat-webAvailable Services 
- probe: Probe CLI tool for code search
- probe-chat-cli: Interactive chat interface (CLI mode)
- probe-chat-web: Web interface (port 3000)
- probe-dev: Development build with cargo cache (dev profile)
Environment Variables 
Probe Chat 
- ANTHROPIC_API_KEY- Anthropic API key for Claude models
- OPENAI_API_KEY- OpenAI API key for GPT models
- ALLOWED_FOLDERS- Optional, restricts which folders can be searched
Use Cases 
CI/CD Integration 
yaml
# Example GitHub Actions usage
- name: Analyze Code Structure
  run: |
    docker run --rm -v ${{ github.workspace }}:/workspace \
      buger/probe search "TODO|FIXME" /workspace --format json > analysis.jsonDevelopment Teams 
bash
# Team development environment
docker run --rm -it \
  -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
  -v $(pwd):/workspace \
  -p 3000:3000 \
  buger/probe-chat --webCode Review Automation 
bash
# Automated code review
docker run --rm \
  -v $(pwd):/workspace \
  buger/probe extract "security|auth" /workspace --format markdownMulti-Platform Support 
Probe Docker images support multiple architectures:
- linux/amd64- x86_64 Linux systems
- linux/arm64- ARM64 Linux systems (Apple Silicon, ARM servers)
Docker will automatically pull the correct architecture for your system.
Building Locally 
If you prefer to build the images locally:
bash
# Build Probe CLI
docker build -t probe-local .
# Build Probe Chat
docker build -t probe-chat-local -f examples/chat/Dockerfile examples/chat
# Build with Docker Compose
docker compose buildHealth Checks 
Both images include health checks:
- Probe CLI: Tests probe --version
- Probe Chat: Tests application endpoint (web mode) or Node.js version (CLI mode)
Security Features 
- Non-root execution: Both containers run as non-root user probe
- Minimal base images: Based on debian:bookworm-slimandnode:slim
- Security labels: OCI-compliant labels for metadata
- Read-only volumes: Mount code directories as read-only when possible
Troubleshooting 
Port Already in Use 
If port 3000 is already in use:
bash
docker run --rm -e ANTHROPIC_API_KEY=your_key -p 8080:3000 buger/probe-chat --webPermission Issues 
If you need to write to mounted volumes:
bash
# Set ownership for mounted directory
sudo chown -R 1000:1000 /path/to/mounted/directoryAPI Key Issues 
Ensure your API key is properly set:
bash
# Check if key is set
echo $ANTHROPIC_API_KEY
# Set key if needed
export ANTHROPIC_API_KEY=your_actual_keyAdvanced Configuration 
Custom Dockerfile 
For advanced use cases, you can extend the base images:
dockerfile
FROM buger/probe-chat:latest
# Add custom configurations
COPY custom-config.json /app/config/
ENV CUSTOM_CONFIG_PATH=/app/config/custom-config.json
# Add additional tools
USER root
RUN apt-get update && apt-get install -y git
USER probe
ENTRYPOINT ["node", "index.js"]Production Deployment 
For production deployments, consider:
- Using specific version tags instead of latest
- Setting resource limits
- Implementing proper logging
- Using secrets management for API keys
- Setting up monitoring and health checks
yaml
# docker-compose.prod.yml
version: '3.8'
services:
  probe-chat:
    image: buger/probe-chat:1.0.0
    environment:
      - ANTHROPIC_API_KEY_FILE=/run/secrets/anthropic_api_key
    secrets:
      - anthropic_api_key
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '0.5'
    restart: unless-stopped
secrets:
  anthropic_api_key:
    external: true