1.1.0 • Published 7 years ago
@dgsh/docker-compose v1.1.0
docker-compose
docker-compose is a small library that allows you to run docker-compose via Node. The docker-compose executable is still required.
Fork of https://github.com/PDMLab/docker-compose
Installation
npm install --save @dgsh/docker-composeUsage
docker-compose current supports these commands:
upAll(options)- Create and start containers - always uses the-dflag due to non interactive modepullAll(options)- Pulls images associated with the servicesupMany(services, options)- Create and start containers specified inservices- always uses the-dflag due to non interactive modeupOne(service, options)- Create and start container specified inservice- always uses the-dflag due to non interactive modecontainers(options)- Returns IDs of running containersdown(options)- Stop and remove containers, networks, images, and volumeskill(options)- Kill containersstop(options)- Stop servicesrm(options)- Remove stopped containers - always uses the-fflag due to non interactive modeexec(container, command, options)- Execcommandinsidecontainer, uses-Tto properly handle stdin & stdoutrun(container, command, options)- Runcommandinsidecontainer, uses-Tto properly handle stdin & stdoutbuildAll(options)- Build all imagesbuildMany(services, options)- Build images of specified servicesbuildOne(service, options)- Build image of specified serviceport(service, port, protocol, options)- Returns host port for exposed service port
All commands return a Promise({object}) with an stdout and stderr strings
{
out: 'stdout contents'
err: 'stderr contents'
}Options
docker-compose accepts these params:
cwd {string}: mandatory folder path to thedocker-compose.ymlconfig {(string|string[])}: custom and/or multiple yml files can be specified (relative tocwd)[log] {boolean}: optional setting to enable console logging (output ofdocker-composestdout/stderroutput)
Example
To start containers based on the docker-compose.yml file in your current directory, just call compose.up like this:
const DockerCompose = require('@dgsh/docker-compose')
const compose = new DockerCompose({
cwd: path.join(__dirname),
log: false
})
compose.up().then(
() => {
console.log('done')
},
(err) => {
console.log('something went wrong:', err.message)
}
)To execute command inside a running container
compose.exec('node', 'npm install', { log: true })