Skip to content

Latest commit

 

History

History
116 lines (88 loc) · 2.74 KB

File metadata and controls

116 lines (88 loc) · 2.74 KB

Docker Deployment Guide

Quick Start

Using Docker Compose (Recommended)

  1. Create a .env file with your API keys:
ANTHROPIC_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
GOOGLE_API_KEY=your_key_here
  1. Build and run:
docker-compose up --build
  1. Access the app at http://localhost:8501

Using Docker Directly

  1. Build the image:
docker build -t agno-skills-agent .
  1. Run the container:
docker run -p 8501:8501 \
  -e ANTHROPIC_API_KEY=your_key \
  -e OPENAI_API_KEY=your_key \
  -e GOOGLE_API_KEY=your_key \
  -v agno_outputs:/app/outputs \
  agno-skills-agent

Features

  • Model Selection: Choose between GPT-5.1/5.2/5.3, Claude Sonnet 4, or Gemini 3.1 Pro in the UI
  • Slim Image: Based on Python 3.12-slim with minimal dependencies
  • LibreOffice Support: Includes LibreOffice headless for Excel formula recalculation
  • Persistent Outputs: Named volume for reliable data persistence
  • Visualization Support:
    • Matplotlib charts (.png) - High quality 300 DPI
    • Plotly interactive charts (.html)
  • File Processing: PDF, DOCX, PPTX, XLSX support

Working Directory

All output files are saved to the outputs/ directory inside the container.

Using Named Volumes (Default - Recommended)

The docker-compose.yml uses a named volume outputs_data which:

  • Persists data across container restarts
  • Avoids permission issues
  • Works consistently across different host systems

Access files from named volume:

# List files
docker run --rm -v outputs_data:/app/outputs alpine ls -la /app/outputs

# Copy files from volume to host
docker cp $(docker-compose ps -q agno-skills-agent):/app/outputs ./my_outputs

# Access via Docker Desktop (Volumes tab) or inspect
docker volume inspect outputs_data

Using Bind Mounts (Alternative)

To use your local ./outputs directory instead, modify docker-compose.yml:

volumes:
  - ./outputs:/app/outputs  # Bind mount to local directory

Note: May require proper permissions on Linux/Mac:

mkdir -p outputs
chmod 777 outputs

Environment Variables

Required API keys (at least one):

  • ANTHROPIC_API_KEY - For Claude models
  • OPENAI_API_KEY - For GPT models
  • GOOGLE_API_KEY - For Gemini models

Troubleshooting

LibreOffice Issues

If formula recalculation fails in sandboxed environments:

# The soffice.py helper automatically handles socket restrictions
from agent_skills.validators.scripts.soffice import run_soffice

Permission Issues

Ensure the outputs/ directory has proper permissions:

mkdir -p outputs
chmod 777 outputs

Port Conflicts

If port 8501 is in use, change it in docker-compose.yml:

ports:
  - "8502:8501"  # Use port 8502 instead