#!/bin/bash # Optimized Docker build script - no n8n dependencies! set -e # Enable BuildKit export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1 echo "๐Ÿš€ Building n8n-mcp (runtime-only, no n8n deps)..." echo "๐Ÿ’ก This build assumes database is pre-built" # Check if nodes.db exists if [ ! -f "data/nodes.db" ]; then echo "โš ๏ธ Warning: data/nodes.db not found!" echo " Run 'npm run rebuild' first to create the database" exit 1 fi # Build with BuildKit echo "๐Ÿ“ฆ Building Docker image..." docker build \ --progress=plain \ --cache-from type=gha \ --cache-from type=registry,ref=ghcr.io/czlonkowski/n8n-mcp:buildcache \ --build-arg BUILDKIT_INLINE_CACHE=1 \ -t "n8n-mcp:latest" \ . # Show image size echo "" echo "๐Ÿ“Š Image size:" docker images n8n-mcp:latest --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}" # Test the build echo "" echo "๐Ÿงช Testing build..." docker run --rm n8n-mcp:latest node -e "console.log('Build OK - Runtime dependencies only!')" # Estimate size savings echo "" echo "๐Ÿ’ฐ Size comparison:" echo " Old approach (with n8n deps): ~1.5GB" echo " New approach (runtime only): ~280MB" echo " Savings: ~82% smaller!" echo "" echo "โœ… Build complete!" echo "" echo "๐ŸŽฏ Next steps:" echo " - Use 'docker run -p 3000:3000 -e AUTH_TOKEN=your-token n8n-mcp:latest' to run" echo " - Use 'docker-compose up' for production deployment" echo " - Remember to rebuild database locally before pushing!"