docker-command-builder

0.0.5 • Public • Published

Docker Command Builder

Docker command generator that take cares of container dependencies

Build status

Build Status

Installation

Use NPM to install the library:

npm install docker-command-builder

Usage

You can use the runner component to create dependant containers:

dockerComm = require("docker-command-builder");

var runnerBuilderChild = dockerComm("runner");
runnerBuilderChild
    .setName("selenium-named-chrome")
    .setImage("selenium-node-chrome:2.45.0")
    .setAlias("chrome")
    .setDaemon(true);
    
var runnerBuilder = dockerComm("runner");
    
runnerBuilder
    .setName("hub")
    .setImage("selenium-hub:2.45.0")
    .setDaemon(true)
    .addChild(runnerBuilderChild);
        
var runnerBuilderApp = dockerComm("runner");
    
runnerBuilderApp
    .setName("hub")
    .setImage("custom-application:1.0.0")
    .setDaemon(true)
    .addChild(runnerBuilder);
    
var command = runnerBuilderApp.make();
console.log(command)

Will output te next array :

[
    'docker pull selenium-node-chrome:2.45.0',
    'docker pull selenium-hub:2.45.0',
    'docker pull custom-application:1.0.0',
    'docker run -d --name=selenium-named-chrome selenium-node-chrome:2.45.0',
    'docker run -d --name=hub --link selenium-named-chrome:chrome selenium-hub:2.45.0',
    'docker run -d --name=hub --link hub:selenium-hub custom-application:1.0.0'
]

You can set build folder and tag, environment variables, volumes, etc...

Docker Version

You can initiate the any docker-commander object with different version, by default is the latest version.

dockerComm = require("docker-command-builder");

var runnerBuilderChild_13 = dockerComm("runner", 1.3); //<-- set the version on creation

API

puller

Exposed by:

require("docker-command-builder")("puller")

puller#setImage(image)

Sets the name of the image for the pull command

puller#setRegistry(registry)

By default is setted to null (the official docker registry), you can change it on this variable

var pullerBuilder = dockerComm("puller");
pullerBuilder.setImage("image1");
pullerBuilder.setRegistry("registry.custom.server.com");
pullerBuilder.setVersion("1.1.1");
var command = pullerBuilder.make();

console.log(command);
//--> docker pull registry.custom.server.com/image1:1.1.1

puller#make

Generates the command array

builder

Exposed by require("docker-command-builder")("builder")

builder#setTag(tag)

Sets the tag of the build

builder#setDir(dir)

Sets the dir of the build. Must be absolute path

builder#make

Generates the command array

runner

Exposed by require("docker-command-builder")("runner")

runner#setBuild(tag,dir)

Disables the image option, and sets the build tag as image of the run

runner#setAlias(alias)

If setted, instead the name of the image to generate the link on parent containers, will use the alias

runner#getAlias

Returns the alias

runner#addPort

Add a port definition as 127.0.0.1:8000:80

runner#addChild(runner instance)

Add a runner instance as child container

runner#setDaemon(boolean flag)

Sets the run command as daemon or not (by default is true). If enabled, disables the cleanUp flag.

runner#setCleanUp(boolean flag)

Sets the container flag for clean up (--rm). If enabled, disables the daemon flag.

runner#setPrivileged(boolean flag)

Sets the container flag for privileged container (--privileged).

runner#setImage(image)

Sets the image of the command. Disabled the build information.

runner#getImage

Returns the image setted.

runner#addEnvironmentVariable(key,value)

Adds a new environment variable to the container

runner#addVolume(hostDir,containerDir,mode=rw|ro[optional])

Adds a new volume to the container. Mode by default is empty

runner#make

Generates the command array

TODO

  • Add runtime constraints to runner (memory and cpu)
  • Add user option to runner
  • Add workdir option to runner
  • Add command option to runner

LICENSE

MIT

Package Sidebar

Install

npm i docker-command-builder

Weekly Downloads

1

Version

0.0.5

License

MIT

Last publish

Collaborators

  • urodoz