Skip to main content
Glama
test-docker-modes.sh2.97 kB
#!/bin/bash # Test script to verify both Docker modes work correctly set -e echo "===================================" echo "Docker Setup Test Script" echo "===================================" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Function to print colored output print_status() { if [ $1 -eq 0 ]; then echo -e "${GREEN}✓${NC} $2" else echo -e "${RED}✗${NC} $2" return 1 fi } # Change to docker directory cd "$(dirname "$0")" echo "" echo "1. Building Docker image..." docker-compose build --quiet print_status $? "Docker image built successfully" echo "" echo "2. Testing MCP Protocol Mode..." echo " Starting container in MCP mode..." docker-compose up -d sleep 5 # Check if container is running docker-compose ps | grep -q "Up" print_status $? "MCP mode container is running" # Check logs for correct mode docker-compose logs 2>&1 | grep -q "Running in mcp mode" print_status $? "Container started in MCP mode" # Stop MCP mode docker-compose down echo "" echo "3. Testing HTTP API Mode..." echo " Starting container in HTTP mode..." docker-compose -f docker-compose.http.yml up -d sleep 10 # Check if container is running docker-compose -f docker-compose.http.yml ps | grep -q "Up" print_status $? "HTTP mode container is running" # Check logs for Uvicorn docker-compose -f docker-compose.http.yml logs 2>&1 | grep -q "Uvicorn\|FastAPI\|HTTP" print_status $? "HTTP server started (Uvicorn/FastAPI)" # Test health endpoint HTTP_RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/api/health 2>/dev/null || echo "000") if [ "$HTTP_RESPONSE" = "200" ]; then print_status 0 "Health endpoint responding (HTTP $HTTP_RESPONSE)" else print_status 1 "Health endpoint not responding (HTTP $HTTP_RESPONSE)" fi # Test with API key API_TEST=$(curl -s -X POST http://localhost:8000/api/memories \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-secure-api-key-here" \ -d '{"content": "Docker test memory", "tags": ["test"]}' 2>/dev/null | grep -q "success\|unauthorized" && echo "ok" || echo "fail") if [ "$API_TEST" = "ok" ]; then print_status 0 "API endpoint accessible" else print_status 1 "API endpoint not accessible" fi # Stop HTTP mode docker-compose -f docker-compose.http.yml down echo "" echo "===================================" echo "Test Summary:" echo "===================================" echo -e "${GREEN}✓${NC} All critical fixes from Joe applied:" echo " - PYTHONPATH=/app/src" echo " - run_server.py copied" echo " - Embedding models pre-downloaded" echo "" echo -e "${GREEN}✓${NC} Simplified Docker structure:" echo " - Unified entrypoint for both modes" echo " - Clear MCP vs HTTP separation" echo " - Single Dockerfile for all modes" echo "" echo -e "${YELLOW}Note:${NC} Deprecated files marked in DEPRECATED.md" echo "" echo "Docker setup is ready for use!"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/doobidoo/mcp-memory-service'

If you have feedback or need assistance with the MCP directory API, please join our Discord server