32 lines
768 B
TypeScript
32 lines
768 B
TypeScript
import { exec } from '../../helpers/utils/exec';
|
|
import { execSync } from 'child_process';
|
|
|
|
class DockerCompose {
|
|
private commandPrefix: string;
|
|
|
|
constructor(composeFiles: string[]) {
|
|
this.commandPrefix = 'docker-compose ' + composeFiles.map((f) => '-f ' + f).join(' ');
|
|
}
|
|
|
|
async up() {
|
|
return await exec(this.commandPrefix + ' up -d');
|
|
}
|
|
|
|
async down() {
|
|
return await exec(this.commandPrefix + ' down');
|
|
}
|
|
|
|
async restart(service: string) {
|
|
return await exec(this.commandPrefix + ' restart ' + service);
|
|
}
|
|
|
|
async ps() {
|
|
return Promise.resolve(execSync(this.commandPrefix + ' ps').toString('utf-8'));
|
|
}
|
|
|
|
async logs(service: string) {
|
|
await exec(this.commandPrefix + ' logs ' + service)
|
|
}
|
|
}
|
|
|
|
export default DockerCompose; |