chore: import upstream snapshot with attribution
Build and Push Docker Images / Build Docker Image (push) Has been cancelled
Build and Push Docker Images / Build Railway Docker Image (push) Has been cancelled
Build and Publish n8n Docker Image / test-image (push) Has been cancelled
Dependency Compatibility Check / Fresh Install Dependency Check (push) Has been cancelled
Build and Publish n8n Docker Image / build-and-push (push) Has been cancelled
Build and Publish n8n Docker Image / create-release (push) Has been cancelled
Automated Release / Detect Version Change (push) Has been cancelled
Automated Release / Generate Release Notes (push) Has been cancelled
Automated Release / Create GitHub Release (push) Has been cancelled
Automated Release / Package MCPB Bundle (push) Has been cancelled
Automated Release / Build and Verify (push) Has been cancelled
Automated Release / Publish to NPM (push) Has been cancelled
Automated Release / Build and Push Docker Images (push) Has been cancelled
Automated Release / Update Documentation (push) Has been cancelled
Automated Release / Notify Release Completion (push) Has been cancelled
Secret Scan / secretlint (push) Has been cancelled
Test Suite / test (push) Has been cancelled
Test Suite / cjs-runtime (push) Has been cancelled
Test Suite / publish-results (push) Has been cancelled
Build and Push Docker Images / Build Docker Image (push) Has been cancelled
Build and Push Docker Images / Build Railway Docker Image (push) Has been cancelled
Build and Publish n8n Docker Image / test-image (push) Has been cancelled
Dependency Compatibility Check / Fresh Install Dependency Check (push) Has been cancelled
Build and Publish n8n Docker Image / build-and-push (push) Has been cancelled
Build and Publish n8n Docker Image / create-release (push) Has been cancelled
Automated Release / Detect Version Change (push) Has been cancelled
Automated Release / Generate Release Notes (push) Has been cancelled
Automated Release / Create GitHub Release (push) Has been cancelled
Automated Release / Package MCPB Bundle (push) Has been cancelled
Automated Release / Build and Verify (push) Has been cancelled
Automated Release / Publish to NPM (push) Has been cancelled
Automated Release / Build and Push Docker Images (push) Has been cancelled
Automated Release / Update Documentation (push) Has been cancelled
Automated Release / Notify Release Completion (push) Has been cancelled
Secret Scan / secretlint (push) Has been cancelled
Test Suite / test (push) Has been cancelled
Test Suite / cjs-runtime (push) Has been cancelled
Test Suite / publish-results (push) Has been cancelled
This commit is contained in:
Executable
+96
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
# Test script for optimized Docker build
|
||||
|
||||
set -e
|
||||
|
||||
echo "🧪 Testing Optimized Docker Build"
|
||||
echo "================================="
|
||||
|
||||
# Colors for output
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Build the optimized image
|
||||
echo -e "\n📦 Building optimized Docker image..."
|
||||
docker build -f Dockerfile.optimized -t n8n-mcp:optimized .
|
||||
|
||||
# Check image size
|
||||
echo -e "\n📊 Checking image size..."
|
||||
SIZE=$(docker images n8n-mcp:optimized --format "{{.Size}}")
|
||||
echo "Image size: $SIZE"
|
||||
|
||||
# Extract size in MB for comparison
|
||||
SIZE_MB=$(docker images n8n-mcp:optimized --format "{{.Size}}" | sed 's/MB//' | sed 's/GB/*1024/' | bc 2>/dev/null || echo "0")
|
||||
if [ "$SIZE_MB" != "0" ] && [ "$SIZE_MB" -lt "300" ]; then
|
||||
echo -e "${GREEN}✅ Image size is optimized (<300MB)${NC}"
|
||||
else
|
||||
echo -e "${RED}⚠️ Image might be larger than expected${NC}"
|
||||
fi
|
||||
|
||||
# Test stdio mode
|
||||
echo -e "\n🔍 Testing stdio mode..."
|
||||
TEST_RESULT=$(echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | \
|
||||
docker run --rm -i -e MCP_MODE=stdio n8n-mcp:optimized 2>/dev/null | \
|
||||
grep -o '"name":"[^"]*"' | head -1)
|
||||
|
||||
if [ -n "$TEST_RESULT" ]; then
|
||||
echo -e "${GREEN}✅ Stdio mode working${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Stdio mode failed${NC}"
|
||||
fi
|
||||
|
||||
# Test HTTP mode
|
||||
echo -e "\n🌐 Testing HTTP mode..."
|
||||
docker run -d --name test-optimized \
|
||||
-e MCP_MODE=http \
|
||||
-e AUTH_TOKEN=test-token \
|
||||
-p 3002:3000 \
|
||||
n8n-mcp:optimized
|
||||
|
||||
# Wait for startup
|
||||
sleep 5
|
||||
|
||||
# Test health endpoint
|
||||
HEALTH=$(curl -s http://localhost:3002/health | grep -o '"status":"healthy"' || echo "")
|
||||
if [ -n "$HEALTH" ]; then
|
||||
echo -e "${GREEN}✅ Health endpoint working${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Health endpoint failed${NC}"
|
||||
fi
|
||||
|
||||
# Test MCP endpoint
|
||||
MCP_TEST=$(curl -s -H "Authorization: Bearer test-token" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}' \
|
||||
http://localhost:3002/mcp | grep -o '"tools":\[' || echo "")
|
||||
|
||||
if [ -n "$MCP_TEST" ]; then
|
||||
echo -e "${GREEN}✅ MCP endpoint working${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ MCP endpoint failed${NC}"
|
||||
fi
|
||||
|
||||
# Test database statistics tool
|
||||
STATS_TEST=$(curl -s -H "Authorization: Bearer test-token" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_database_statistics","arguments":{}},"id":2}' \
|
||||
http://localhost:3002/mcp | grep -o '"totalNodes":[0-9]*' || echo "")
|
||||
|
||||
if [ -n "$STATS_TEST" ]; then
|
||||
echo -e "${GREEN}✅ Database statistics tool working${NC}"
|
||||
echo "Database stats: $STATS_TEST"
|
||||
else
|
||||
echo -e "${RED}❌ Database statistics tool failed${NC}"
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
docker stop test-optimized >/dev/null 2>&1
|
||||
docker rm test-optimized >/dev/null 2>&1
|
||||
|
||||
# Compare with original image
|
||||
echo -e "\n📊 Size Comparison:"
|
||||
echo "Original image: $(docker images n8n-mcp:latest --format "{{.Size}}" 2>/dev/null || echo "Not built")"
|
||||
echo "Optimized image: $SIZE"
|
||||
|
||||
echo -e "\n✨ Testing complete!"
|
||||
Reference in New Issue
Block a user