diff --git a/__tests__/SetupStore-test.js b/__tests__/SetupStore-test.js index de3c2d4dd1..8b5052e699 100644 --- a/__tests__/SetupStore-test.js +++ b/__tests__/SetupStore-test.js @@ -77,15 +77,18 @@ describe('SetupStore', function () { machine.isoversion.mockReturnValue('1.0'); machine.stop.mockReturnValue(Promise.resolve()); machine.start.mockReturnValue(Promise.resolve()); + machine.regenerateCerts.mockReturnValue(Promise.resolve()); machine.upgrade.mockReturnValue(Promise.resolve()); setupUtil.compareVersions.mockReturnValue(-1); machine.create.mockClear(); machine.upgrade.mockClear(); machine.stop.mockClear(); machine.start.mockClear(); + machine.regenerateCerts.mockClear(); return setupStore.steps().init.run(() => {}).then(() => { expect(machine.create).not.toBeCalled(); expect(machine.stop).toBeCalled(); + expect(machine.regenerateCerts).toBeCalled(); expect(machine.start).toBeCalled(); expect(machine.upgrade).toBeCalled(); }); diff --git a/package.json b/package.json index 26bfa16ef5..7ae0f34fd4 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ ] }, "docker-version": "1.5.0", - "docker-machine-version": "0.1.0", + "docker-machine-version": "0.1.0-kitematic-0.5.8", "atom-shell-version": "0.21.2", "virtualbox-version": "4.3.24", "virtualbox-filename": "VirtualBox-4.3.24.pkg", diff --git a/src/DockerMachine.js b/src/DockerMachine.js index 4e587d2921..326d963574 100644 --- a/src/DockerMachine.js +++ b/src/DockerMachine.js @@ -83,6 +83,9 @@ var DockerMachine = { return Promise.resolve(stdout.trim().replace('\n', '')); }); }, + regenerateCerts: function () { + return util.exec([DockerMachine.command(), 'tls-regenerate-certs', '-f', NAME]); + }, state: function () { return DockerMachine.info().then(info => { return info ? info.state : null; diff --git a/src/SetupStore.js b/src/SetupStore.js index 90d23fba71..ca575abcf9 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -61,7 +61,7 @@ var _steps = [{ message: 'To run Docker containers on your computer, Kitematic is starting a Linux virtual machine. This may take a minute...', totalPercent: 60, percent: 0, - seconds: 53, + seconds: 58, run: Promise.coroutine(function* (progressCallback) { setupUtil.simulateProgress(this.seconds, progressCallback); yield virtualBox.vmdestroy('kitematic-vm'); @@ -86,6 +86,7 @@ var _steps = [{ yield machine.upgrade(); } yield machine.start(); + yield machine.regenerateCerts(); }) }]; diff --git a/src/SetupUtil.js b/src/SetupUtil.js index e626958b0a..95fe6c0b5f 100644 --- a/src/SetupUtil.js +++ b/src/SetupUtil.js @@ -13,15 +13,15 @@ var SetupUtil = { return true; } - if (!fs.existsSync('/usr/local/bin/docker') || !fs.existsSync('/usr/local/bin/docker-machine')) { - return fs.statSync('/usr/local/bin').gid !== 80 || fs.statSync('/usr/local/bin').uid !== process.getuid(); - } - - if (fs.statSync('/usr/local/bin/docker').gid !== 80 || fs.statSync('/usr/local/bin/docker').uid !== process.getuid()) { + if (fs.statSync('/usr/local/bin').gid !== 80 || fs.statSync('/usr/local/bin').uid !== process.getuid()) { return true; } - if (fs.statSync('/usr/local/bin/docker-machine').gid !== 80 || fs.statSync('/usr/local/bin/docker-machine').uid !== process.getuid()) { + if (fs.existsSync('/usr/local/bin/docker') && (fs.statSync('/usr/local/bin/docker').gid !== 80 || fs.statSync('/usr/local/bin/docker').uid !== process.getuid())) { + return true; + } + + if (fs.existsSync('/usr/local/bin/docker-machine') && (fs.statSync('/usr/local/bin/docker-machine').gid !== 80 || fs.statSync('/usr/local/bin/docker-machine').uid !== process.getuid())) { return true; } return false; @@ -50,9 +50,11 @@ var SetupUtil = { }, fixBinariesCmd: function () { var cmd = []; - cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, this.escapePath(path.join('/usr/local/bin', 'docker-machine'))]); + cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, path.join('/usr/local/bin')]); cmd.push('&&'); - cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, this.escapePath(path.join('/usr/local/bin', 'docker'))]); + 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')]); return cmd.join(' '); }, installVirtualBoxCmd: function () { diff --git a/util/deps b/util/deps index 7d7dff31d1..25bbaaf8f3 100755 --- a/util/deps +++ b/util/deps @@ -11,7 +11,9 @@ pushd $BASE/resources > /dev/null if [ ! -f $DOCKER_MACHINE_CLI_FILE ]; then echo "-----> Downloading Docker Machine CLI..." rm -rf docker-machine* - curl -L -o $DOCKER_MACHINE_CLI_FILE https://github.com/docker/machine/releases/download/v$DOCKER_MACHINE_CLI_VERSION/docker-machine_darwin-amd64 + # Use temporary, new version of docker-machine that has some important fixes + # curl -L -o $DOCKER_MACHINE_CLI_FILE https://github.com/docker/machine/releases/download/v$DOCKER_MACHINE_CLI_VERSION/docker-machine_darwin-amd64 + curl -L -o $DOCKER_MACHINE_CLI_FILE https://github.com/kitematic/kitematic/releases/download/v0.5.8/docker-machine_darwin-amd64 chmod +x $DOCKER_MACHINE_CLI_FILE fi