Ejemplo n.º 1
0
    return q.Promise(function(resolve, reject, notify) {
        docker.containerExistsByName(domain).then(function(container) {
            if (container.Status.indexOf('Exit') > -1) {
                var new_container = docker.getContainer(container.Id);
                new_container.start(function(err, data) {
                    if (err) {
                        reject(err);
                    } else {
                        resolve(new_container);
                    }
                });
            } else {
                reject(['already started', container]);
            }

        }).fail(function() {
            docker.createContainer(createOptions, function(err, container) {
                if (err) {
                    reject(err);
                } else {
                    container.start(startOptions,
                        function(err, data) {
                            if (err) {
                                reject(err);
                            } else {
                                resolve(container);
                            }
                        });
                }
            })
        })
    });
Ejemplo n.º 2
0
 return q.promise( function(resolve,reject){
     docker.containerExistsByName(domain)
         .then( function(container){
             docker.getContainer(container.Id).stop( function(err){
                 if(err) reject(err);
                 resolve('container stopped');
             });
         })
         .fail(reject)
 });
Ejemplo n.º 3
0
    return q.Promise( function(resolve,reject,notify){
        docker.containerExistsByName(domain).then(function(container){
            if(container.Status.indexOf('Exit') > -1){
                var new_container = docker.getContainer(container.Id);
                new_container.start(function(err,data){
                    if(err){
                        reject(err);
                    }else{
                        resolve(new_container);
                    }
                });
            }else{
                reject(['already started',container]);
            }

        }).fail( function(){

            var default_options = {
                Image: image,
                name: domain,
                'ExposedPorts': { "80/tcp": {} },
                'Tty': true,
                'Detach': false,
                'Env': ["VIRTUAL_HOST=" + domain],
                "AttachStdin":true,
                "AttachStdout":true,
                "AttachStderr":true,
                "OpenStdin":true
            };

            var opt = _.extend(default_options,createOptions);

            docker.createContainer(opt, function(err,container){
                    var default_start_options = {};
                    var opt = _.extend(default_start_options,startOptions);
                    if(err){
                        reject(err);
                    }else{
                        container.start(opt,
                            function(err,data){
                                if(err){
                                    reject(err);
                                }else{
                                    resolve(container);
                                }
                            });
                    }
                }
            )
        })
    });
Ejemplo n.º 4
0
        return q.promise( function(resolve,reject){
            docker.containerExistsByName(domain)
                .then( function(container){
                    if(container.Status.indexOf('Exit') != -1){
                        docker.getContainer(container.Id).remove( function(err){
                            if(err) reject(err);
                            resolve('domain deleted');
                        });
                    }else{
                        self.stop(domain)
                            .then(function(res){
                                docker.getContainer(container.Id).remove( function(err){
                                    if(err) reject(err);
                                    resolve('domain deleted');
                                })
                            })
                    }


                })
                .fail(reject);
        });