diff --git a/src/utils/ResourcesUtil.js b/src/utils/ResourcesUtil.js index 9459db8f7b..3aaed0e6fe 100644 --- a/src/utils/ResourcesUtil.js +++ b/src/utils/ResourcesUtil.js @@ -16,5 +16,8 @@ module.exports = { }, dockerMachine: function () { return path.join(this.resourceDir(), 'docker-machine' + util.binsEnding()); + }, + dockerCompose: function () { + return path.join(this.resourceDir(), 'docker-compose' + util.binsEnding()); } }; diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index 25925741f4..9c3b61cfa3 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -28,8 +28,10 @@ var SetupUtil = { shouldUpdateBinaries: function () { return !fs.existsSync(util.dockerBinPath()) || !fs.existsSync(util.dockerMachineBinPath()) || + !fs.existsSync(util.dockerComposeBinPath()) || + this.checksum(util.dockerBinPath()) !== this.checksum(resources.docker()) || this.checksum(util.dockerMachineBinPath()) !== this.checksum(resources.dockerMachine()) || - this.checksum(util.dockerBinPath()) !== this.checksum(resources.docker()); + this.checksum(util.dockerComposeBinPath()) !== this.checksum(resources.dockerCompose()); }, copycmd: function (src, dest) { return ['rm', '-f', dest, '&&', 'cp', src, dest]; @@ -40,6 +42,8 @@ var SetupUtil = { cmd.push.apply(cmd, this.copycmd(util.escapePath(resources.dockerMachine()), '/usr/local/bin/docker-machine')); cmd.push('&&'); cmd.push.apply(cmd, this.copycmd(util.escapePath(resources.docker()), '/usr/local/bin/docker')); + cmd.push('&&'); + cmd.push.apply(cmd, this.copycmd(util.escapePath(resources.dockerCompose()), '/usr/local/bin/docker-compose')); return cmd.join(' '); }, fixBinariesCmd: function () { @@ -49,6 +53,8 @@ var SetupUtil = { cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, path.join('/usr/local/bin', 'docker-machine')]); cmd.push('&&'); cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, path.join('/usr/local/bin', 'docker')]); + cmd.push('&&'); + cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, path.join('/usr/local/bin', 'docker-compose')]); return cmd.join(' '); }, installVirtualBoxCmd: function () { diff --git a/src/utils/Util.js b/src/utils/Util.js index 47d54b16f4..86c5f965df 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -35,6 +35,9 @@ module.exports = { dockerMachineBinPath: function () { return path.join(this.binsPath(), 'docker-machine' + this.binsEnding()); }, + dockerComposeBinPath: function () { + return path.join(this.binsPath(), 'docker-compose' + this.binsEnding()); + }, escapePath: function (str) { return str.replace(/ /g, '\\ ').replace(/\(/g, '\\(').replace(/\)/g, '\\)'); },