mirror of
https://github.com/danbulant/docker-compose
synced 2026-05-20 12:58:43 +00:00
141 lines
2.6 KiB
JavaScript
141 lines
2.6 KiB
JavaScript
'use strict';
|
|
|
|
const { promisify } = require('util');
|
|
const exec = promisify(require('child_process').exec);
|
|
const logger = require('./lib/log');
|
|
|
|
const logStandards = function (standards) {
|
|
if (standards.stdout.length > 0) {
|
|
logger.info(standards.stdout);
|
|
}
|
|
|
|
if (standards.stderr) {
|
|
logger.warn(standards.stderr);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* @param {object} options
|
|
* @param {boolean} options.log
|
|
* @param {cwd} options.cwd
|
|
*/
|
|
const up = function (options) {
|
|
return new Promise((resolve, reject) => {
|
|
const cwd = options.cwd;
|
|
|
|
exec('docker-compose up -d', { cwd }).then(
|
|
standards => {
|
|
if (options.log) {
|
|
logStandards(standards);
|
|
}
|
|
|
|
return resolve();
|
|
},
|
|
err => {
|
|
logger.error(err.message);
|
|
|
|
return reject(err);
|
|
}
|
|
);
|
|
});
|
|
};
|
|
|
|
/**
|
|
* @param {object} options
|
|
* @param {boolean} options.log
|
|
* @param {cwd} options.cwd
|
|
*/
|
|
const down = function (options) {
|
|
return new Promise((resolve, reject) => {
|
|
const cwd = options.cwd;
|
|
|
|
exec('docker-compose down', { cwd }).then(
|
|
standards => {
|
|
if (options.log) {
|
|
logStandards(standards);
|
|
}
|
|
|
|
return resolve();
|
|
},
|
|
err => {
|
|
logger.error(err.message);
|
|
|
|
return reject(err);
|
|
}
|
|
);
|
|
});
|
|
};
|
|
|
|
/**
|
|
* @param {object} options
|
|
* @param {boolean} options.log
|
|
* @param {cwd} options.cwd
|
|
*/
|
|
const stop = function (options) {
|
|
return new Promise((resolve, reject) => {
|
|
const cwd = options.cwd;
|
|
|
|
exec('docker-compose stop', { cwd }).then(
|
|
standards => {
|
|
if (options.log) {
|
|
logStandards(standards);
|
|
}
|
|
|
|
return resolve();
|
|
},
|
|
err => {
|
|
logger.error(err.message);
|
|
|
|
return reject(err);
|
|
}
|
|
);
|
|
});
|
|
};
|
|
|
|
/**
|
|
* @param {object} options
|
|
* @param {boolean} options.log
|
|
* @param {cwd} options.cwd
|
|
*/
|
|
const kill = function (options) {
|
|
return new Promise((resolve, reject) => {
|
|
const cwd = options.cwd;
|
|
|
|
exec('docker-compose kill', { cwd }).then(
|
|
standards => {
|
|
if (options.log) {
|
|
logStandards(standards);
|
|
}
|
|
|
|
return resolve();
|
|
},
|
|
err => {
|
|
logger.error(err.message);
|
|
|
|
return reject(err);
|
|
}
|
|
);
|
|
});
|
|
};
|
|
|
|
/**
|
|
* @param {object} options
|
|
* @param {boolean} options.log
|
|
* @param {cwd} options.cwd
|
|
*/
|
|
const rm = function (options) {
|
|
const cwd = options.cwd;
|
|
|
|
exec('docker-compose rm', { cwd }).then(
|
|
standards => {
|
|
if (options.log) {
|
|
logStandards(standards);
|
|
}
|
|
},
|
|
err => {
|
|
logger.error(err.message);
|
|
}
|
|
);
|
|
};
|
|
|
|
module.exports = { up, kill, down, stop, rm };
|