Merge branch 'master' of github.com:kitematic/kitematic

Conflicts:
	README.md
	meteor/server/docker.js
This commit is contained in:
Jeff Morgan 2014-08-28 21:57:44 -07:00
commit b59d56457d
4 changed files with 50 additions and 8 deletions

View File

@ -1,6 +1,6 @@
# [Kitematic](https://kitematic.com) # [Kitematic](https://kitematic.com)
![Kitematic Screenshot](https://kitematic.com/img/screenshot.5843.png) ![Kitematic Screenshot](https://s3.amazonaws.com/kite-installer/screenshot.5843.png)
## Table of Contents ## Table of Contents

View File

@ -10,9 +10,19 @@
<label>Host URL</label> <label>Host URL</label>
</div> </div>
<div class="col-xs-8"> <div class="col-xs-8">
{{url}} {{hostUrl}}
</div> </div>
</div> </div>
{{#if ports}}
<div class="row">
<div class="col-xs-3">
<label>Ports</label>
</div>
<div class="col-xs-8">
{{ports}}
</div>
</div>
{{/if}}
<div class="row"> <div class="row">
<div class="col-xs-3"> <div class="col-xs-3">
<label>Status</label> <label>Status</label>

View File

@ -59,11 +59,28 @@ Apps.helpers({
image: function () { image: function () {
return Images.findOne(this.imageId); return Images.findOne(this.imageId);
}, },
hostUrl: function () {
return this.name + '.dev';
},
ports: function () {
var app = this;
if (app.docker && app.docker.NetworkSettings.Ports) {
var ports = _.map(_.keys(app.docker.NetworkSettings.Ports), function (portObj) {
var port = parseInt(portObj.split('/')[0], 10);
return port;
});
return ports.join(', ');
} else {
return null;
}
},
url: function () { url: function () {
var app = this; var app = this;
var image = Images.findOne(app.imageId); var image = Images.findOne(app.imageId);
if (image && image.meta.app && image.meta.app.webPort) { if (image && image.meta.app && image.meta.app.webPort) {
return 'http://' + app.name + '.dev:' + image.meta.app.webPort; return 'http://' + app.name + '.dev:' + image.meta.app.webPort;
} else if (image && image.meta.app && image.meta.app.webPort === false) {
return null;
} else { } else {
// Picks the best port // Picks the best port
if (app.docker && app.docker.NetworkSettings.Ports) { if (app.docker && app.docker.NetworkSettings.Ports) {

View File

@ -94,7 +94,7 @@ runContainer = function (app, image, callback) {
if (err) { callback(err, null); return; } if (err) { callback(err, null); return; }
console.log('Started container: ' + container.id); console.log('Started container: ' + container.id);
// Use dig to refresh the DNS // Use dig to refresh the DNS
exec('/usr/bin/dig dig ' + app.name + '.dev @172.17.42.1 ', function(err, out, code) {}); exec('/usr/bin/dig dig ' + app.name + '.dev @172.17.42.1 ', function() {});
callback(null, container); callback(null, container);
}); });
}); });
@ -134,7 +134,11 @@ var getFromImage = function (dockerfile) {
restartApp = function (app, callback) { restartApp = function (app, callback) {
if (app.docker && app.docker.Id) { if (app.docker && app.docker.Id) {
restartContainerSync(app.docker.Id); try {
restartContainerSync(app.docker.Id);
} catch (e) {
console.error(e);
}
var containerData = getContainerDataSync(app.docker.Id); var containerData = getContainerDataSync(app.docker.Id);
Fiber(function () { Fiber(function () {
Apps.update(app._id, {$set: { Apps.update(app._id, {$set: {
@ -143,9 +147,8 @@ restartApp = function (app, callback) {
}}); }});
}).run(); }).run();
callback(null); callback(null);
// Use dig to refresh the DNS // Use dig to refresh the DNS
exec('/usr/bin/dig dig ' + app.name + '.dev @172.17.42.1 ', function(err, out, code) {}); exec('/usr/bin/dig dig ' + app.name + '.dev @172.17.42.1 ', function() {});
} else { } else {
callback(null); callback(null);
} }
@ -498,7 +501,13 @@ killAndRemoveContainers = function (names, callback) {
pullImageFromDockerfile = function (dockerfile, imageId, callback) { pullImageFromDockerfile = function (dockerfile, imageId, callback) {
var fromImage = getFromImage(dockerfile); var fromImage = getFromImage(dockerfile);
console.log('From image: ' + fromImage); console.log('From image: ' + fromImage);
if (fromImage) { var installedImage = null;
try {
installedImage = getImageDataSync(fromImage);
} catch (e) {
console.error(e);
}
if (fromImage && !installedImage) {
Fiber(function () { Fiber(function () {
Images.update(imageId, { Images.update(imageId, {
$set: { $set: {
@ -538,6 +547,8 @@ pullImageFromDockerfile = function (dockerfile, imageId, callback) {
callback(null); callback(null);
}); });
}); });
} else {
callback(null);
} }
}; };
@ -599,7 +610,11 @@ buildImage = function (image, callback) {
oldImageId = image.docker.Id; oldImageId = image.docker.Id;
} }
if (oldImageId && oldImageId !== imageData.Id) { if (oldImageId && oldImageId !== imageData.Id) {
removeImageSync(oldImageId); try {
removeImageSync(oldImageId);
} catch (e) {
console.error(e);
}
} }
}).run(); }).run();
callback(null); callback(null);