Skip to content

Repository files navigation

loki

js-standard-styleBuild StatusCode ClimateDependency StatusdevDependency Status

NPM

Runnable Docker/Swarm client library with batteries.

Loki

Features

  • include both Docker and Swarm clients
  • Swarm client has all additional swarmerode Promisified methods
  • automatically report each docker call to datadog using dogerode
  • HTTPS certs are required. Will throw an error
  • Base client includes Promisified container actions like stopContainer, logContainer etc
  • You can still call Dockerode directly. Dockerode instance is available under client property

Usage

You can use loki Docker client Promisified extra container functions like this:

constDocker=require('loki').DockerconstdockerClient=newDocker({host: 'https://127.0.0.1:4242'})dockerClient.stopContainerAsync('71501a8ab0f8').then(function(){console.log('container stopped')}).catch(function(err){console.log('container failed to stop',err)})

You can use loki Dockerode client methods like this:

constDocker=require('loki').DockerconstdockerClient=newDocker({host: 'https://127.0.0.1:4242'})dockerClient.getContainer('71501a8ab0f8').stop(function(err){if(err){returnconsole.log('container failed to stop',err)}console.log('container stopped')})

You can use loki Dockerode promisified methods directly like this:

constDocker=require('loki').DockerconstdockerClient=newDocker({host: 'https://127.0.0.1:4242'})dockerClient.listConatinersAsync('71501a8ab0f8').then(function(containers){console.log('found containers')})

You can extend loki Docker client with your app specific functions:

constDocker=require('loki').DockerclassMyDockerextendsDocker{}constmyDocker=newMyDocker()dockerClient.stopContainerAsync('71501a8ab0f8').then(function(){console.log('container stopped')}).catch(function(err){console.log('container failed to stop',err)})

Base functions

Every Loki client include utility Promise-based functions to deal with containers.

E.x. instead of this code

constDocker=require('loki').DockerconstdockerClient=newDocker({host: 'https://127.0.0.1:4242'})dockerClient.getContainer('71501a8ab0f8').stop(function(err){console.log('stopped container?',err)})

You can do the following

constDocker=require('loki').DockerconstdockerClient=newDocker({host: 'https://127.0.0.1:4242'})dockerClient.stopContainerAsync('71501a8ab0f8').then(function(){console.log('container was stopped')})
  • topContainerAsync
  • startContainerAsync
  • commitContainerAsync
  • inspectContainerAsync
  • stopContainerAsync
  • pauseContainerAsync
  • unpauseContainerAsync
  • restartContainerAsync
  • resizeContainerAsync
  • attachContainerAsync
  • removeContainerAsync
  • killContainerAsync
  • execContainerAsync
  • renameContainerAsync
  • logsContainerAsync
  • statsContainerAsync
  • getArchiveContainerAsync
  • infoArchiveContainerAsync
  • putArchiveContainerAsync
  • updateContainerAsync

Swarm functions

  • swarmHostsAsync
  • swarmInfoAsync
  • swarmHostExistsAsync

Conventions

  • Each client instance has all functions from Dockerode client available to call directly.
  • Each client instance has Promisified Dockerode functions available with Async suffix.
  • Each Swarm client instance has all functions from Swarmerode client available to call directly.
  • Each Swarm client instance has Promisified Swarmerode functions available with Async suffix.

About

Loki: Runnable Docker/Swarm library with batteries

Resources

Stars

6 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages