docker related

This commit is contained in:
2026-01-18 23:29:04 +01:00
parent 2f5464e1d2
commit 7a9b4b751e
30 changed files with 6004 additions and 1 deletions

View File

@@ -0,0 +1,108 @@
#!/bin/bash
# Integration Test for Host IP Detection and Proxy Routing
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
echo "🧪 Running Host IP Detection Integration Test"
echo "=" * 50
# Test 1: Host IP Detection
echo "1⃣ Testing Host IP Detection..."
if python3 "$SCRIPT_DIR/test-host-ip-detection.py"; then
echo "✅ Host IP detection test passed"
else
echo "❌ Host IP detection test failed"
exit 1
fi
# Test 2: Build and start services
echo -e "\n2⃣ Testing Service Startup with Dynamic Host IP..."
cd "$PROJECT_ROOT"
# Check if certificates exist
if [[ ! -f "docker/certs/ca.pem" ]]; then
echo "⚠️ TLS certificates not found. Generating..."
cd docker && ./scripts/generate-certs.sh && cd ..
fi
# Start services
echo "Starting session-manager service..."
docker-compose up -d session-manager
# Wait for service to be ready
echo "Waiting for service to be healthy..."
timeout=30
counter=0
while [ $counter -lt $timeout ]; do
if curl -f http://localhost:8000/health > /dev/null 2>&1; then
echo "✅ Service is healthy"
break
fi
echo "⏳ Waiting for service... ($counter/$timeout)"
sleep 2
counter=$((counter + 2))
done
if [ $counter -ge $timeout ]; then
echo "❌ Service failed to start within $timeout seconds"
docker-compose logs session-manager
exit 1
fi
# Test 3: Health Check with Host IP Info
echo -e "\n3⃣ Testing Health Check with Host IP Detection..."
HEALTH_RESPONSE=$(curl -s http://localhost:8000/health)
if echo "$HEALTH_RESPONSE" | grep -q '"host_ip_detection": true'; then
echo "✅ Host IP detection working in health check"
else
echo "❌ Host IP detection not working in health check"
echo "Health response: $HEALTH_RESPONSE"
exit 1
fi
# Extract detected IP from health response
DETECTED_IP=$(echo "$HEALTH_RESPONSE" | grep -o '"detected_host_ip": "[^"]*"' | cut -d'"' -f4)
echo "📍 Detected host IP: $DETECTED_IP"
# Test 4: Create a test session
echo -e "\n4⃣ Testing Session Creation and Proxy Routing..."
SESSION_RESPONSE=$(curl -s -X POST http://localhost:8000/sessions)
if echo "$SESSION_RESPONSE" | grep -q '"session_id"'; then
echo "✅ Session creation successful"
SESSION_ID=$(echo "$SESSION_RESPONSE" | grep -o '"session_id": "[^"]*"' | cut -d'"' -f4)
echo "📋 Created session: $SESSION_ID"
else
echo "❌ Session creation failed"
echo "Response: $SESSION_RESPONSE"
exit 1
fi
# Test 5: Test proxy routing (if container starts successfully)
echo -e "\n5⃣ Testing Proxy Routing (may take time for container to start)..."
PROXY_TEST_URL="http://localhost:8000/session/$SESSION_ID/health"
# Give container time to start
sleep 10
if curl -f "$PROXY_TEST_URL" > /dev/null 2>&1; then
echo "✅ Proxy routing successful - container accessible via dynamic host IP"
else
echo "⚠️ Proxy routing test inconclusive (container may still starting)"
echo " This is normal for the first test run"
fi
# Cleanup
echo -e "\n🧹 Cleaning up..."
docker-compose down
echo -e "\n🎉 Integration test completed successfully!"
echo "✅ Host IP detection: Working"
echo "✅ Service startup: Working"
echo "✅ Health check: Working"
echo "✅ Session creation: Working"
echo "📍 Dynamic host IP detection resolved routing issues"