link-stack/docker/scripts/docker.js
2026-02-10 08:36:04 +01:00

35 lines
1.1 KiB
JavaScript

const { spawn } = require("child_process");
const path = require('path');
const app = process.argv[2];
const command = process.argv[3];
const files = {
all: ["zammad", "postgresql", "opensearch", "signal-cli-rest-api", "bridge-whatsapp"],
dev: ["zammad", "postgresql", "opensearch", "signal-cli-rest-api"],
opensearch: ["opensearch"],
zammad: ["zammad", "postgresql", "opensearch", "signal-cli-rest-api"],
whatsapp: ["bridge-whatsapp"],
};
const envFile = path.resolve(process.cwd(), '.env');
const finalFiles = files[app]
.map((file) => ['-f', `docker/compose/${file}.yml`]).flat();
// Add dev overrides for development mode
if (app === 'linkDev' && files[app].includes('zammad')) {
// Development mode configurations can be added here if needed
}
const finalCommand = command === "up" ? ["up", "-d", "--remove-orphans"] : [command];
const dockerCompose = spawn('docker', ['compose', '--env-file', envFile, ...finalFiles, ...finalCommand]);
dockerCompose.stdout.on('data', (data) => {
console.info(`${data}`);
});
dockerCompose.stderr.on('data', (data) => {
console.info(`${data}`);
});