Skip to main content
Glama
troubleshoot-apple-silicon.js5.09 kB
#!/usr/bin/env node /** * Apple Silicon Docker Troubleshooting Script * Helps diagnose and fix common SQL Server Docker issues on Apple Silicon */ import { execSync } from 'child_process'; import fs from 'fs'; import path from 'path'; console.log('🍎 Apple Silicon SQL Server Docker Troubleshooting\n'); // Check system architecture console.log('1. System Information:'); console.log(` Platform: ${process.platform}`); console.log(` Architecture: ${process.arch}`); console.log(` Node.js: ${process.version}`); // Check Docker console.log('\n2. Docker Status:'); try { const dockerVersion = execSync('docker --version', { encoding: 'utf8' }).trim(); console.log(` ✅ Docker: ${dockerVersion}`); const dockerInfo = execSync('docker info --format "{{.Architecture}}"', { encoding: 'utf8' }).trim(); console.log(` ✅ Docker Architecture: ${dockerInfo}`); // Test AMD64 emulation (Rosetta 2) try { execSync('docker run --rm --platform linux/amd64 hello-world', { stdio: 'ignore' }); console.log(' ✅ AMD64 Emulation: Working (Rosetta 2 enabled)'); } catch { console.log(' ❌ AMD64 Emulation: Failed (Rosetta 2 may be disabled)'); console.log(' 💡 Fix: Enable Rosetta 2 emulation in Docker Desktop settings'); } } catch { console.log(' ❌ Docker: Not available or not running'); console.log(' 💡 Fix: Install and start Docker Desktop for Mac'); } // Check container status console.log('\n3. SQL Server Container Status:'); try { const containerStatus = execSync( 'docker ps --filter name=warp-mcp-sqlserver --format "table {{.Names}}\\t{{.Status}}\\t{{.Ports}}"', { encoding: 'utf8' } ); if (containerStatus.includes('warp-mcp-sqlserver')) { console.log(' ✅ Container is running:'); console.log(`${containerStatus}`); } else { console.log(' ⚠️ Container not running'); } } catch { console.log(' ❌ Could not check container status'); } // Check for recent container logs console.log('\n4. Recent Container Logs:'); try { const logs = execSync('docker logs --tail 10 warp-mcp-sqlserver 2>&1', { encoding: 'utf8' }); console.log(' 📋 Last 10 log entries:'); console.log( logs .split('\n') .map(line => ` ${line}`) .join('\n') ); } catch { console.log(' ⚠️ No logs available (container may not exist)'); } // Check platform configuration console.log('\n5. Platform Configuration:'); const configPath = path.join(process.cwd(), 'test/docker/.platform-config.json'); if (fs.existsSync(configPath)) { try { const config = JSON.parse(fs.readFileSync(configPath, 'utf8')); console.log(' ✅ Platform configuration found:'); console.log(` Image: ${config.selected?.config?.image}`); console.log(` Platform: ${config.selected?.config?.platform || 'native'}`); console.log(` Performance: ${config.selected?.performance}`); } catch { console.log(' ⚠️ Platform configuration file corrupted'); } } else { console.log(' ⚠️ No platform configuration found'); console.log(' 💡 Fix: Run "npm run docker:detect" to generate optimal configuration'); } // Recommendations console.log('\n6. Troubleshooting Recommendations:'); if (process.arch === 'arm64' && process.platform === 'darwin') { console.log(' 🍎 Apple Silicon Detected - Recommended fixes:'); console.log(''); console.log(' 1. Clean restart: npm run docker:clean && npm run docker:start:init'); console.log( ' 2. Check Rosetta 2: Enable "Use Rosetta for x86/amd64 emulation" in Docker Desktop' ); console.log(' 3. Memory allocation: Increase Docker memory to at least 4GB'); console.log(' 4. Platform regeneration: npm run docker:detect (regenerates optimal config)'); console.log(' 5. Extended wait: Use longer timeouts with npm run docker:wait'); console.log(''); console.log(' 📖 Common Apple Silicon Issues:'); console.log(' • Container exits immediately → Check Rosetta 2 settings'); console.log(' • "No such file or directory" → Run clean restart'); console.log(' • Connection refused → Wait longer, SQL Server needs more time on ARM64'); console.log(' • Permission errors → Ensure Docker has proper file system access'); } else { console.log(' 💻 Intel/AMD64 System - Standard troubleshooting:'); console.log(''); console.log(' 1. Clean restart: npm run docker:clean && npm run docker:start:init'); console.log(' 2. Check logs: npm run docker:logs'); console.log(' 3. Test connection: npm run docker:test-connection'); } console.log('\n🔧 Quick Commands:'); console.log(' npm run docker:status # Check container status'); console.log(' npm run docker:logs # View container logs'); console.log(' npm run docker:clean # Clean reset (removes all data)'); console.log(' npm run docker:restart # Restart container (keeps data)'); console.log(' npm run docker:test:clean # Full clean test run'); console.log('\n✅ Troubleshooting complete!');

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/egarcia74/warp-sql-server-mcp'

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