diff --git a/meteor/server/apps.js b/meteor/server/apps.js index 1cd94115d8..01a44ac441 100755 --- a/meteor/server/apps.js +++ b/meteor/server/apps.js @@ -1,7 +1,7 @@ var watchers = {}; removeBindFolder = function (name, callback) { - exec(path.join(getBinDir(), 'boot2docker') + ' ssh "rm -rf /var/lib/docker/binds/' + name + '"', function(err, stdout) { + exec(path.join(getBinDir(), 'boot2docker') + ' ssh "sudo rm -rf /var/lib/docker/binds/' + name + '"', function(err, stdout) { callback(err, stdout); }); }; @@ -181,8 +181,15 @@ Meteor.methods({ var image = Images.findOne(appObj.imageId); loadKiteVolumes(image.path, appObj.name); var app = Apps.findOne(appId); - Meteor.call('runApp', app, function (err) { - if (err) { throw err; } + removeBindFolder(app.name, function (err) { + if (err) { + console.error(err); + } + Fiber(function () { + Meteor.call('runApp', app, function (err) { + if (err) { throw err; } + }); + }).run(); }); } }, diff --git a/meteor/server/docker.js b/meteor/server/docker.js index 2387049e92..ba6ddfbdb9 100755 --- a/meteor/server/docker.js +++ b/meteor/server/docker.js @@ -190,12 +190,14 @@ createTarFileSync = function (image) { var convertVolumeObjToArray = function (obj) { var result = []; - _.each(_.keys(obj), function (key) { - var volumeObj = {}; - volumeObj.Path = key; - volumeObj.Value = obj[key]; - result.push(volumeObj); - }); + if (obj !== null && typeof obj === 'object') { + _.each(_.keys(obj), function (key) { + var volumeObj = {}; + volumeObj.Path = key; + volumeObj.Value = obj[key]; + result.push(volumeObj); + }); + } return result; };