1.1.0 • Published 5 years ago

@dgsh/docker-compose v1.1.0

Weekly downloads
1
License
MIT
Repository
gitlab
Last release
5 years ago

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 mode
  • pullAll(options) - Pulls images associated with the services
  • upMany(services, options) - Create and start containers specified in services - always uses the -d flag due to non interactive mode
  • upOne(service, options) - Create and start container specified in service - always uses the -d flag due to non interactive mode
  • containers(options) - Returns IDs of running containers
  • down(options) - Stop and remove containers, networks, images, and volumes
  • kill(options) - Kill containers
  • stop(options) - Stop services
  • rm(options) - Remove stopped containers - always uses the -f flag due to non interactive mode
  • exec(container, command, options) - Exec command inside container, uses -T to properly handle stdin & stdout
  • run(container, command, options) - Run command inside container, uses -T to properly handle stdin & stdout
  • buildAll(options) - Build all images
  • buildMany(services, options) - Build images of specified services
  • buildOne(service, options) - Build image of specified service
  • port(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 the docker-compose.yml
  • config {(string|string[])}: custom and/or multiple yml files can be specified (relative to cwd)
  • [log] {boolean}: optional setting to enable console logging (output of docker-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 })
1.1.0

5 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago