update
This commit is contained in:
88
scripts/dev-minimal.js
Normal file
88
scripts/dev-minimal.js
Normal file
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const { spawn, exec } = require('child_process');
|
||||
const os = require('os');
|
||||
const isWindows = process.platform === 'win32';
|
||||
|
||||
console.log('🚀 Starting minimal development environment...');
|
||||
|
||||
// Detect architecture
|
||||
const arch = os.arch();
|
||||
const isAppleSilicon = arch === 'arm64' && process.platform === 'darwin';
|
||||
|
||||
console.log(`🖥️ Detected architecture: ${arch}`);
|
||||
console.log(`🍎 Apple Silicon: ${isAppleSilicon ? 'Yes' : 'No'}`);
|
||||
|
||||
// Use minimal compose file (only PostgreSQL and Redis)
|
||||
const composeFile = 'docker-compose.dev.minimal.yml';
|
||||
console.log(`📦 Using minimal Docker Compose file: ${composeFile}`);
|
||||
|
||||
// Check if docker-compose is available
|
||||
exec('docker-compose --version', (error) => {
|
||||
if (error) {
|
||||
console.error('❌ docker-compose not found');
|
||||
console.error('💡 Please install Docker Desktop or use: npm run dev:simple');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log('✅ docker-compose found, starting services...');
|
||||
|
||||
// Start Docker services
|
||||
const dockerProcess = spawn('docker-compose', ['-f', composeFile, 'up', '-d'], {
|
||||
stdio: 'inherit',
|
||||
shell: isWindows
|
||||
});
|
||||
|
||||
dockerProcess.on('close', (code) => {
|
||||
if (code === 0) {
|
||||
console.log('✅ Docker services started');
|
||||
console.log('🗄️ PostgreSQL: localhost:5432');
|
||||
console.log('📦 Redis: localhost:6379');
|
||||
console.log('📧 Note: Mailhog not included (use npm run dev:simple for email testing)');
|
||||
|
||||
// Wait a bit for services to be ready
|
||||
setTimeout(() => {
|
||||
console.log('🚀 Starting Next.js development server...');
|
||||
|
||||
// Start Next.js dev server
|
||||
const nextProcess = spawn('npm', ['run', 'dev:next'], {
|
||||
stdio: 'inherit',
|
||||
shell: isWindows,
|
||||
env: {
|
||||
...process.env,
|
||||
DATABASE_URL: 'postgresql://portfolio_user:portfolio_dev_pass@localhost:5432/portfolio_dev?schema=public',
|
||||
REDIS_URL: 'redis://localhost:6379',
|
||||
NODE_ENV: 'development'
|
||||
}
|
||||
});
|
||||
|
||||
nextProcess.on('close', (code) => {
|
||||
console.log(`Next.js dev server exited with code ${code}`);
|
||||
});
|
||||
|
||||
// Handle process signals
|
||||
process.on('SIGINT', () => {
|
||||
console.log('\n🛑 Stopping development environment...');
|
||||
nextProcess.kill('SIGTERM');
|
||||
|
||||
// Stop Docker services
|
||||
const stopProcess = spawn('docker-compose', ['-f', composeFile, 'down'], {
|
||||
stdio: 'inherit',
|
||||
shell: isWindows
|
||||
});
|
||||
|
||||
stopProcess.on('close', () => {
|
||||
console.log('✅ Development environment stopped');
|
||||
process.exit(0);
|
||||
});
|
||||
});
|
||||
|
||||
}, 5000); // Wait 5 seconds for services to be ready
|
||||
|
||||
} else {
|
||||
console.error('❌ Failed to start Docker services');
|
||||
console.error('💡 Try using: npm run dev:simple');
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user