From 6f5496a48db4e450c75fba6fc808fb595c3d27d2 Mon Sep 17 00:00:00 2001 From: CI-DEV <154627941+IlumCI@users.noreply.github.com> Date: Fri, 1 Aug 2025 12:30:26 +0300 Subject: [PATCH] Add files via upload --- docker-compose.yml | 71 ++++++++++++++++++++++++++++++++++++++++++++++ test_docker.py | 65 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 docker-compose.yml create mode 100644 test_docker.py diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..8e4f2360 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,71 @@ +version: '3.8' + +services: + swarms: + build: + context: . + dockerfile: Dockerfile + image: swarms:latest + container_name: swarms-container + environment: + - PYTHONUNBUFFERED=1 + - PYTHONPATH=/app + # Add your API keys here or use .env file + # - OPENAI_API_KEY=${OPENAI_API_KEY} + # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} + # - GOOGLE_API_KEY=${GOOGLE_API_KEY} + volumes: + - .:/app + - ./data:/app/data + - ./models:/app/models + working_dir: /app + command: python test_docker.py + restart: unless-stopped + healthcheck: + test: ["CMD", "python", "-c", "import swarms; print('Health check passed')"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + swarms-dev: + build: + context: . + dockerfile: Dockerfile + image: swarms:dev + container_name: swarms-dev-container + environment: + - PYTHONUNBUFFERED=1 + - PYTHONPATH=/app + volumes: + - .:/app + - ./data:/app/data + - ./models:/app/models + working_dir: /app + command: bash + stdin_open: true + tty: true + restart: unless-stopped + + swarms-api: + build: + context: . + dockerfile: Dockerfile + image: swarms:api + container_name: swarms-api-container + environment: + - PYTHONUNBUFFERED=1 + - PYTHONPATH=/app + volumes: + - .:/app + working_dir: /app + ports: + - "8000:8000" + command: python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload + restart: unless-stopped + depends_on: + - swarms + +networks: + default: + name: swarms-network \ No newline at end of file diff --git a/test_docker.py b/test_docker.py new file mode 100644 index 00000000..4733fc0d --- /dev/null +++ b/test_docker.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +""" +Test script to verify Swarms installation in Docker container. +""" + +import sys +from typing import Dict, Any + +def test_swarms_import() -> Dict[str, Any]: + """ + Test that swarms can be imported and basic functionality works. + + Returns: + Dict[str, Any]: Test results + """ + try: + import swarms + print(f"✅ Swarms imported successfully. Version: {swarms.__version__}") + + # Test basic functionality + from swarms import Agent + print("✅ Agent class imported successfully") + + return { + "status": "success", + "version": swarms.__version__, + "message": "Swarms package is working correctly" + } + + except ImportError as e: + print(f"❌ Failed to import swarms: {e}") + return { + "status": "error", + "error": str(e), + "message": "Swarms package import failed" + } + except Exception as e: + print(f"❌ Unexpected error: {e}") + return { + "status": "error", + "error": str(e), + "message": "Unexpected error occurred" + } + +def main() -> None: + """Main function to run tests.""" + print("🐝 Testing Swarms Docker Image...") + print("=" * 50) + + # Test Python version + print(f"Python version: {sys.version}") + + # Test swarms import + result = test_swarms_import() + + print("=" * 50) + if result["status"] == "success": + print("🎉 All tests passed! Docker image is working correctly.") + sys.exit(0) + else: + print("💥 Tests failed! Please check the Docker image.") + sys.exit(1) + +if __name__ == "__main__": + main() \ No newline at end of file