@dgsh/docker-compose
v1.1.0
Published
Manage docker-compose from Node.js
Downloads
10
Maintainers
Readme
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-compose
Usage
docker-compose
current supports these commands:
upAll(options)
- Create and start containers - always uses the-d
flag due to non interactive modepullAll(options)
- Pulls images associated with the servicesupMany(services, options)
- Create and start containers specified inservices
- always uses the-d
flag due to non interactive modeupOne(service, options)
- Create and start container specified inservice
- always uses the-d
flag 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-f
flag due to non interactive modeexec(container, command, options)
- Execcommand
insidecontainer
, uses-T
to properly handle stdin & stdoutrun(container, command, options)
- Runcommand
insidecontainer
, uses-T
to 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.yml
config {(string|string[])}
: custom and/or multiple yml files can be specified (relative tocwd
)[log] {boolean}
: optional setting to enable console logging (output ofdocker-compose
stdout
/stderr
output)
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 })