52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
const { execSync } = require('child_process');
|
|
const os = require('os');
|
|
|
|
function isWindows() {
|
|
return os.platform() === 'win32';
|
|
}
|
|
|
|
function runCommand(command) {
|
|
try {
|
|
execSync(command, {
|
|
stdio: 'inherit',
|
|
shell: isWindows() ? 'cmd.exe' : 'sh'
|
|
});
|
|
} catch (error) {
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
function main() {
|
|
const args = process.argv.slice(2);
|
|
const command = args[0];
|
|
|
|
if (!command) {
|
|
console.error('Usage: node scripts/docker.js <command>');
|
|
console.error('Available commands: dev, dev:build, dev:clean, dev:down, dev:up, e2e:build, e2e:clean, e2e:down, e2e:up');
|
|
process.exit(1);
|
|
}
|
|
|
|
const commands = {
|
|
'dev': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml up',
|
|
'dev:build': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml up --build',
|
|
'dev:clean': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml down -v --remove-orphans --volumes',
|
|
'dev:down': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml down --remove-orphans',
|
|
'dev:up': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml up',
|
|
'e2e:build': 'docker build -f apps/website/Dockerfile.e2e -t gridpilot-website-e2e . && docker-compose -f docker-compose.e2e.yml up -d --build',
|
|
'e2e:clean': 'docker-compose -f docker-compose.e2e.yml down -v --remove-orphans && docker rmi gridpilot-website-e2e 2>/dev/null || true',
|
|
'e2e:down': 'docker-compose -f docker-compose.e2e.yml down --remove-orphans',
|
|
'e2e:up': 'docker-compose -f docker-compose.e2e.yml up -d'
|
|
};
|
|
|
|
if (!commands[command]) {
|
|
console.error(`Unknown command: ${command}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
runCommand(commands[command]);
|
|
}
|
|
|
|
main();
|