diff --git a/DOCKER.md b/DOCKER.md deleted file mode 100644 index 0b2ec1fb..00000000 --- a/DOCKER.md +++ /dev/null @@ -1,225 +0,0 @@ -# Swarms Docker Image - -This repository includes a Docker image for running Swarms, an AI agent framework. The image is automatically built and published to DockerHub on every push to the main branch and on version tags. - -## 🐳 Quick Start - -### Pull and Run - -```bash -# Pull the latest image -docker pull kyegomez/swarms:latest - -# Run a simple test -docker run --rm kyegomez/swarms:latest python test_docker.py - -# Run with interactive shell -docker run -it --rm kyegomez/swarms:latest bash -``` - -### Using Specific Versions - -```bash -# Pull a specific version -docker pull kyegomez/swarms:v8.0.4 - -# Run with specific version -docker run --rm kyegomez/swarms:v8.0.4 python -c "import swarms; print(swarms.__version__)" -``` - -## 🏗️ Building Locally - -### Prerequisites - -- Docker installed on your system -- Git to clone the repository - -### Build Steps - -```bash -# Clone the repository -git clone https://github.com/kyegomez/swarms.git -cd swarms - -# Build the image -docker build -t swarms:latest . - -# Test the image -docker run --rm swarms:latest python test_docker.py -``` - -## 🚀 Usage Examples - -### Basic Agent Example - -```bash -# Create a Python script (agent_example.py) -cat > agent_example.py << 'EOF' -from swarms import Agent - -# Create an agent -agent = Agent( - agent_name="test_agent", - system_prompt="You are a helpful AI assistant." -) - -# Run the agent -result = agent.run("Hello! How are you today?") -print(result) -EOF - -# Run in Docker -docker run --rm -v $(pwd):/app swarms:latest python /app/agent_example.py -``` - -### Interactive Development - -```bash -# Run with volume mount for development -docker run -it --rm \ - -v $(pwd):/app \ - -w /app \ - swarms:latest bash - -# Inside the container, you can now run Python scripts -python your_script.py -``` - -### Using Environment Variables - -```bash -# Run with environment variables -docker run --rm \ - -e OPENAI_API_KEY=your_api_key_here \ - -e ANTHROPIC_API_KEY=your_anthropic_key_here \ - swarms:latest python your_script.py -``` - -## 🔧 Configuration - -### Environment Variables - -The Docker image supports the following environment variables: - -- `OPENAI_API_KEY`: Your OpenAI API key -- `ANTHROPIC_API_KEY`: Your Anthropic API key -- `GOOGLE_API_KEY`: Your Google API key -- `PYTHONPATH`: Additional Python path entries -- `PYTHONUNBUFFERED`: Set to 1 for unbuffered output - -### Volume Mounts - -Common volume mount patterns: - -```bash -# Mount current directory for development --v $(pwd):/app - -# Mount specific directories --v $(pwd)/data:/app/data --v $(pwd)/models:/app/models - -# Mount configuration files --v $(pwd)/config:/app/config -``` - -## 🐛 Troubleshooting - -### Common Issues - -1. **Permission Denied** - ```bash - # Fix permission issues - docker run --rm -v $(pwd):/app:rw swarms:latest python your_script.py - ``` - -2. **Memory Issues** - ```bash - # Increase memory limit - docker run --rm --memory=4g swarms:latest python your_script.py - ``` - -3. **Network Issues** - ```bash - # Use host network - docker run --rm --network=host swarms:latest python your_script.py - ``` - -### Debug Mode - -```bash -# Run with debug output -docker run --rm -e PYTHONUNBUFFERED=1 swarms:latest python -u your_script.py - -# Run with interactive debugging -docker run -it --rm swarms:latest python -m pdb your_script.py -``` - -## 🔄 CI/CD Integration - -The Docker image is automatically built and published via GitHub Actions: - -- **Triggers**: Push to main branch, version tags (v*.*.*) -- **Platforms**: linux/amd64, linux/arm64 -- **Registry**: DockerHub (kyegomez/swarms) - -### GitHub Actions Secrets Required - -- `DOCKERHUB_USERNAME`: Your DockerHub username -- `DOCKERHUB_TOKEN`: Your DockerHub access token - -## 📊 Image Details - -### Base Image -- Python 3.11-slim-bullseye -- Multi-stage build for optimization -- UV package manager for faster installations - -### Image Size -- Optimized for minimal size -- Multi-stage build reduces final image size -- Only necessary dependencies included - -### Security -- Non-root user execution -- Minimal system dependencies -- Regular security updates - -## 🤝 Contributing - -To contribute to the Docker setup: - -1. Fork the repository -2. Make your changes to the Dockerfile -3. Test locally: `docker build -t swarms:test .` -4. Submit a pull request - -### Testing Changes - -```bash -# Build test image -docker build -t swarms:test . - -# Run tests -docker run --rm swarms:test python test_docker.py - -# Test with your code -docker run --rm -v $(pwd):/app swarms:test python your_test_script.py -``` - -## 📝 License - -This Docker setup is part of the Swarms project and follows the same MIT license. - -## 🆘 Support - -For issues with the Docker image: - -1. Check the troubleshooting section above -2. Review the GitHub Actions logs for build issues -3. Open an issue on GitHub with detailed error information -4. Include your Docker version and system information - ---- - -**Note**: This Docker image is automatically updated with each release. For production use, consider pinning to specific version tags for stability. \ No newline at end of file