diff --git a/package.json b/package.json index ec6e359ca4..920c0e3df5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.22", + "version": "0.5.23", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 2e02e28655..556f9bc3b2 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -132,8 +132,12 @@ var ContainerDetailsSubheader = React.createClass({ if (!this.disableTerminal()) { metrics.track('Terminaled Into Container'); var container = this.props.container; + var shell = ContainerUtil.env(container).SHELL; + if(typeof shell === 'undefined') { + shell = 'sh'; + } machine.ip().then(ip => { - var cmd = [resources.terminal(), 'ssh', '-p', '22', '-o', 'UserKnownHostsFile=/dev/null', '-o', 'LogLevel=quiet', '-o', 'StrictHostKeyChecking=no', '-i', '~/.docker/machine/machines/' + machine.name() + '/id_rsa', 'docker@' + ip, '-t', 'docker', 'exec', '-i', '-t', container.Name, 'sh']; + var cmd = [resources.terminal(), 'ssh', '-p', '22', '-o', 'UserKnownHostsFile=/dev/null', '-o', 'LogLevel=quiet', '-o', 'StrictHostKeyChecking=no', '-i', '~/.docker/machine/machines/' + machine.name() + '/id_rsa', 'docker@' + ip, '-t', 'docker', 'exec', '-i', '-t', container.Name, shell]; exec(cmd, function (stderr, stdout, code) { if (code) { console.log(stderr); diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index 9cdd9e1abf..552858aa9b 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -5,7 +5,7 @@ var assign = require('object-assign'); var docker = require('../utils/DockerUtil'); var metrics = require('../utils/MetricsUtil'); var registry = require('../utils/RegistryUtil'); -var logstore = require('../stores/LogStore'); +var logStore = require('../stores/LogStore'); var bugsnag = require('bugsnag-js'); var _placeholders = {}; @@ -118,6 +118,7 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { return; } self.fetchContainer(name, callback); + logStore.fetch(name); }); }, _createContainer: function (name, containerData, callback) { @@ -363,9 +364,6 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { if (!data.name) { data.name = data.Name; } - if (name !== data.name) { - logstore.rename(name, data.name); - } var fullData = assign(_containers[name], data); this._createContainer(name, fullData, function () { _muted[name] = false; @@ -374,7 +372,6 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { }.bind(this)); }, rename: function (name, newName, callback) { - logstore.rename(name, newName); docker.client().getContainer(name).rename({name: newName}, err => { if (err && err.statusCode !== 204) { callback(err); diff --git a/src/stores/LogStore.js b/src/stores/LogStore.js index a3ba515f80..7a886ee497 100644 --- a/src/stores/LogStore.js +++ b/src/stores/LogStore.js @@ -68,19 +68,18 @@ module.exports = assign(Object.create(EventEmitter.prototype), { } this.emit(this.SERVER_LOGS_EVENT); }); + logStream.on('end', () => { + this.detach(name); + }); }); }, detach: function (name) { if (_streams[name]) { _streams[name].destroy(); + delete _streams[name]; } }, logs: function (name) { return _logs[name] || []; - }, - rename: function (name, newName) { - if (_logs[name]) { - _logs[newName] = _logs[name]; - } } });