# Docker Testing Guide This guide shows how to run the various test files in Docker containers for debugging the Islamic Scholar RAG application. ## Available Test Services ### 1. Connection Test Tests basic OpenRouter API connectivity ```bash docker-compose run --rm test-connection ``` ### 2. OpenRouter in App Environment Tests OpenRouter connection with the same setup as app.py (including Qdrant) ```bash docker-compose run --rm test-openrouter ``` ### 3. AgentOS Simple Test Tests AgentOS without RAG pipeline to isolate AgentOS issues ```bash docker-compose run --rm test-agentos ``` ### 4. RAG Agent Test Tests the custom IslamicScholarAgent with RAG pipeline ```bash docker-compose run --rm test-rag ``` ## Quick Test Commands ### Run All Tests Sequentially ```bash # Test 1: Basic connection docker-compose run --rm test-connection # Test 2: OpenRouter with app environment docker-compose run --rm test-openrouter # Test 3: AgentOS without RAG docker-compose run --rm test-agentos # Test 4: Full RAG pipeline docker-compose run --rm test-rag ``` ### Run Tests in Running Container If you have the main app container running: ```bash # Enter the container docker exec -it islamic-scholar-agent bash # Run tests inside container python app/connection_test.py python app/test_openrouter_in_app.py python app/test_rag_agent.py # Note: test_agentos_simple.py needs a different port ``` ### Using the Test Runner ```bash # In container python run_test.py connection_test python run_test.py openrouter_in_app python run_test.py rag_agent python run_test.py agentos_simple ``` ## Debugging Network Issues ### 1. Check Container Logs ```bash docker-compose logs test-connection docker-compose logs test-openrouter ``` ### 2. Test Network Connectivity ```bash # Test internet access from container docker run --rm --network imam-javad_backend_imam-javad python:3.9 curl -I https://openrouter.ai/api/v1/models # Test DNS resolution docker exec islamic-scholar-agent nslookup openrouter.ai ``` ### 3. Inspect Network ```bash docker network inspect imam-javad_backend_imam-javad ``` ## Common Issues ### Network Connection Lost - Check if container has internet access - Verify DNS settings (8.8.8.8 and 1.1.1.1 are configured) - Test with different OpenRouter endpoints ### Qdrant Connection Issues - Ensure Qdrant container is running: `docker-compose ps` - Check Qdrant logs: `docker-compose logs qdrant` ### Database Connection Issues - PostgreSQL connection failures are now handled gracefully - App will run without database but some AgentOS features may not work ## Expected Results - ✅ **Connection Test**: Should always work (like local testing) - ✅ **OpenRouter in App**: May fail if Qdrant interferes with network - ✅ **AgentOS Simple**: May fail if AgentOS has network issues - ✅ **RAG Agent**: May fail if RAG pipeline has issues Use these tests to isolate where exactly the network issue occurs!