docker_process.js
function(options) {
    options = options || {};
    if (!('pull' in options)) options.pull = true;

    // no pull means no extra stream processing...
    if (!options.pull) return this._run();

    return new Promise(function(accept, reject) {
      // pull the image (or use on in the cache and output status in stdout)
      var pullStream =
        utils.pullImageIfMissing(this.docker, this._createConfig.Image);

      // pipe the pull stream into stdout but don't end
      pullStream.pipe(this.stdout, { end: false });

      pullStream.once('error', reject);
      pullStream.once('end', function() {
        pullStream.removeListener('error', reject);
        this._run().then(accept, reject);
      }.bind(this));
    }.bind(this));
  }
function(options) {
    options = options || {};
    if (!('pull' in options)) options.pull = true;

    // no pull means no extra stream processing...
    if (!options.pull) return this._run();

    return new Promise(function(accept, reject) {
      // pull the image (or use on in the cache and output status in stdout)
      var pullStream =
        utils.pullImageIfMissing(this.docker, this._createConfig.Image);

      // pipe the pull stream into stdout but don't end
      pullStream.pipe(this.stdout, { end: false });

      pullStream.once('error', reject);
      pullStream.once('end', function() {
        pullStream.removeListener('error', reject);
        this._run().then(accept, reject);
      }.bind(this));
    }.bind(this));
  }
function ( options ) { options = options || { } ; if ( ! ( 'pull' in options ) ) options . pull = true ; // no pull means no extra stream processing... if ( ! options . pull ) return this . _run ( ) ; return new Promise ( function ( accept , reject ) { // pull the image (or use on in the cache and output status in stdout) var pullStream = utils . pullImageIfMissing ( this . docker , this . _createConfig . Image ) ; // pipe the pull stream into stdout but don't end pullStream . pipe ( this . stdout , { end : false } ) ; pullStream . once ( 'error' , reject ) ; pullStream . once ( 'end' , function ( ) { pullStream . removeListener ( 'error' , reject ) ; this . _run ( ) . then ( accept , reject ) ; } . bind ( this ) ) ; } . bind ( this ) ) ; }
Run the docker process and resolve the promise on complete.

@param {Object} options for running the container.
@param {Boolean} [options.pull=true] when true pull the image and prepend the
download details to stdout.
Run the docker process and resolve the promise on complete .