diff --git a/src/Docker.js b/src/Docker.js index be0ddffaff..59c9de0d7a 100644 --- a/src/Docker.js +++ b/src/Docker.js @@ -5,18 +5,16 @@ var dockerode = require('dockerode'); var Docker = { _host: null, _client: null, - setup: function(url, name) { + setup: function(ip, name) { var certDir = path.join(process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'], '.docker/machine/machines', name); if (!fs.existsSync(certDir)) { return; } - var ip = url.split(':')[1].replace('//', ''); - var port = url.split(':')[2]; this._host = ip; this._client = new dockerode({ protocol: 'https', host: ip, - port: port, + port: 2376, ca: fs.readFileSync(path.join(certDir, 'ca.pem')), cert: fs.readFileSync(path.join(certDir, 'cert.pem')), key: fs.readFileSync(path.join(certDir, 'key.pem')) diff --git a/src/Main.js b/src/Main.js index f0de3af957..70ab2e45a3 100644 --- a/src/Main.js +++ b/src/Main.js @@ -13,6 +13,7 @@ var template = require('./MenuTemplate'); var util = require('./Util'); var Menu = remote.require('menu'); var bugsnag = require('bugsnag-js'); +var machine = require('./DockerMachine'); window.addEventListener('resize', function () { fs.writeFileSync(path.join(util.supportDir(), 'size'), JSON.stringify({ @@ -25,7 +26,7 @@ Menu.setApplicationMenu(Menu.buildFromTemplate(template())); var settingsjson; try { - settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8')); + settingsjson = require(path.join(__dirname, '..', 'settings.json'), 'utf8'); } catch (err) { settingsjson = {}; } @@ -82,8 +83,8 @@ setInterval(function () { }, 14400000); router.run(Handler => React.render(, document.body)); -SetupStore.setup().then(machine => { - docker.setup(machine.url, machine.name); +SetupStore.setup().then(ip => { + docker.setup(ip, machine.name()); Menu.setApplicationMenu(Menu.buildFromTemplate(template())); ContainerStore.on(ContainerStore.SERVER_ERROR_EVENT, (err) => { bugsnag.notify(err); diff --git a/src/SetupStore.js b/src/SetupStore.js index f909007a08..0cfbee843f 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -219,19 +219,21 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { } } _currentStep = null; - return yield machine.info(); + return yield machine.ip(); }), setup: Promise.coroutine(function * () { while (true) { - var info = yield this.run(); - if (!info.url) { + var ip = yield this.run(); + ip = null; + if (!ip || !ip.length) { metrics.track('Setup Failed', { step: 'done', - message: 'Machine URL not set' + message: 'Machine IP not set' }); var virtualboxVersion = virtualBox.installed() ? yield virtualBox.version() : 'Not installed'; - bugsnag.notify('SetupError', 'Machine url was not set', { - machine: info, + bugsnag.notify('SetupError', 'Machine ip was not set', { + machine: yield machine.info(), + ip: ip, step: 'done', virtualbox: virtualboxVersion }); @@ -239,7 +241,7 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { yield this.pause(); } else { metrics.track('Setup Finished'); - return info; + return ip; } } })