From ff6d9323fd104ed90664f9127c87b3c03f91ff9f Mon Sep 17 00:00:00 2001 From: Jonathan Cremin Date: Thu, 23 Jul 2015 13:10:40 +0100 Subject: [PATCH 01/28] Add support for launching iTerm 2.9+ The AppleScript bridge changed at some point since 2.1. While marked as beta, the 2.9 series is the author's recommended version to use. The two bridges are incompatible, requiring another function and version checks. --- resources/terminal | 61 +++++++++++++++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/resources/terminal b/resources/terminal index af5af69872..ade48d0f32 100755 --- a/resources/terminal +++ b/resources/terminal @@ -16,22 +16,49 @@ EOF` function open_iterm () { osascript > /dev/null < /dev/null < Date: Sun, 17 Jan 2016 16:53:40 +0530 Subject: [PATCH 02/28] Update copyright years Signed-off-by: Prayag Verma --- Gruntfile.js | 2 +- LICENSE | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 735dc33004..e03a31ecb3 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -91,7 +91,7 @@ module.exports = function (grunt) { 'FileDescription': WINDOWS_APPNAME, 'InternalName': BASENAME + '.exe', 'OriginalFilename': BASENAME + '.exe', - 'LegalCopyright': 'Copyright 2015 Docker Inc. All rights reserved.' + 'LegalCopyright': 'Copyright 2015-2016 Docker Inc. All rights reserved.' } } } diff --git a/LICENSE b/LICENSE index dfed3fbe9e..498341cd9a 100644 --- a/LICENSE +++ b/LICENSE @@ -187,7 +187,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2014-2015 Docker, Inc. + Copyright 2014-2016 Docker, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From 16bdc16dd396544fabc473cdae1d720c352345d2 Mon Sep 17 00:00:00 2001 From: Attila Kelemen Date: Tue, 26 Jan 2016 11:50:27 +0100 Subject: [PATCH 03/28] Fixes #1403: PATH is wrong on Windows. Signed-off-by: Attila Kelemen --- src/browser.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/browser.js b/src/browser.js index 0ffca63efc..8795c2ddc9 100644 --- a/src/browser.js +++ b/src/browser.js @@ -8,13 +8,17 @@ import os from 'os'; import path from 'path'; import child_process from 'child_process'; +var isWin = process.platform === 'win32'; + process.env.NODE_PATH = path.join(__dirname, 'node_modules'); process.env.RESOURCES_PATH = path.join(__dirname, '/../resources'); -process.env.PATH = '/usr/local/bin:' + process.env.PATH; +if (!isWin) { + process.env.PATH = '/usr/local/bin:' + process.env.PATH; +} var size = {}, settingsjson = {}; try { - size = JSON.parse(fs.readFileSync(path.join(process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'], 'Library', 'Application\ Support', 'Kitematic', 'size'))); + size = JSON.parse(fs.readFileSync(path.join(process.env[isWin ? 'USERPROFILE' : 'HOME'], 'Library', 'Application\ Support', 'Kitematic', 'size'))); } catch (err) {} try { settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, 'settings.json'), 'utf8')); From 47e0241e0bf1be57645257c627d0fa3a64975b43 Mon Sep 17 00:00:00 2001 From: Fredy Morales Date: Thu, 28 Jan 2016 10:05:40 -0500 Subject: [PATCH 04/28] Changes repo uri Signed-off-by: Fredy Morales --- src/components/ImageCard.react.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index a18420b16c..e9d494ff7a 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -76,11 +76,11 @@ var ImageCard = React.createClass({ $tagOverlay.fadeOut(300); }, handleRepoClick: function () { - var repoUri = 'https://registry.hub.docker.com/'; + var repoUri = 'https://hub.docker.com/'; if (this.props.image.namespace === 'library') { repoUri = repoUri + '_/' + this.props.image.name; } else { - repoUri = repoUri + 'u/' + this.props.image.namespace + '/' + this.props.image.name; + repoUri = repoUri + 'r/' + this.props.image.namespace + '/' + this.props.image.name; } shell.openExternal(repoUri); }, From 2762a0277700afa772803bd922e393e6acabdd33 Mon Sep 17 00:00:00 2001 From: Sven Dowideit Date: Tue, 2 Feb 2016 11:41:37 -0800 Subject: [PATCH 05/28] Move Kitematic into the Docker Toolbox menu Signed-off-by: Sven Dowideit --- Makefile | 9 ++++++++- docs/Dockerfile | 1 + docs/faq.md | 2 +- docs/index.md | 3 ++- docs/known-issues.md | 2 +- docs/minecraft-server.md | 2 +- docs/nginx-web-server.md | 2 +- docs/rethinkdb-dev-database.md | 2 +- docs/userguide.md | 2 +- 9 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 01e2c56e4c..2ec5ecf027 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,11 @@ run: npm install npm run +# Get the IP ADDRESS +DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''") +HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)") +HUGO_BIND_IP=0.0.0.0 + # import the existing docs build cmds from docker/docker DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR)) DOCSPORT := 8000 @@ -13,7 +18,9 @@ DOCKER_DOCS_IMAGE := kitematic-docs$(if $(GIT_BRANCH),:$(GIT_BRANCH)) DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) docs: docs-build - $(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" mkdocs serve + $(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" \ + hugo server \ + --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP) docs-shell: docs-build $(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash diff --git a/docs/Dockerfile b/docs/Dockerfile index b42ddbd82d..06dd3ad23e 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -8,6 +8,7 @@ RUN svn checkout https://github.com/docker/distribution/trunk/docs /docs/content RUN svn checkout https://github.com/docker/tutorials/trunk/docs /docs/content RUN svn checkout https://github.com/docker/opensource/trunk/docs /docs/content/opensource RUN svn checkout https://github.com/docker/machine/trunk/docs /docs/content/machine +RUN svn checkout https://github.com/docker/toolbox/trunk/docs /docs/content/toolbox ENV PROJECT=kitematic # To get the git info for this repo diff --git a/docs/faq.md b/docs/faq.md index 3b9cd4cfc5..8a0a840e2f 100755 --- a/docs/faq.md +++ b/docs/faq.md @@ -4,7 +4,7 @@ title = "Frequently Asked Questions" description = "Documentation covering common questions users have about Kitematic" keywords = ["docker, documentation, about, technology, kitematic, gui"] [menu.main] -parent="smn_workw_kitematic" +parent="toolbox_kitematic" weight=5 +++ diff --git a/docs/index.md b/docs/index.md index 9190f56478..7cf9ec44ac 100755 --- a/docs/index.md +++ b/docs/index.md @@ -4,7 +4,8 @@ title = "Kitematic" description = "Documentation that provides an overview of Kitematic and installation instructions" keywords = ["docker, documentation, about, technology, kitematic, gui"] [menu.main] -parent="mn_install" +identifier="toolbox_kitematic" +parent="workw_toolbox" weight=2 +++ diff --git a/docs/known-issues.md b/docs/known-issues.md index a12c9bbe1b..b69b1c5ac9 100755 --- a/docs/known-issues.md +++ b/docs/known-issues.md @@ -4,7 +4,7 @@ title = "Known Issues" description = "Information about known issues in Kitematic" keywords = ["docker, documentation, about, technology, kitematic, gui"] [menu.main] -parent="smn_workw_kitematic" +parent="toolbox_kitematic" weight=5 +++ diff --git a/docs/minecraft-server.md b/docs/minecraft-server.md index 2c4d089bae..433b0f0dbe 100755 --- a/docs/minecraft-server.md +++ b/docs/minecraft-server.md @@ -4,7 +4,7 @@ title = "Set up a Minecraft Server" description = "Tutorial demonstrating the setup of a Minecraft server using Docker and Kitematic" keywords = ["docker, documentation, about, technology, kitematic, gui, minecraft, tutorial"] [menu.main] -parent="smn_workw_kitematic" +parent="toolbox_kitematic" weight=2 +++ diff --git a/docs/nginx-web-server.md b/docs/nginx-web-server.md index 7121c4fd6f..7c1199a579 100755 --- a/docs/nginx-web-server.md +++ b/docs/nginx-web-server.md @@ -4,7 +4,7 @@ title = "Set up an Nginx web server" description = "Tutorial demonstrating the setup of an Nginx web server using Docker and Kitematic" keywords = ["docker, documentation, about, technology, kitematic, gui, nginx, tutorial"] [menu.main] -parent="smn_workw_kitematic" +parent="toolbox_kitematic" weight=1 +++ diff --git a/docs/rethinkdb-dev-database.md b/docs/rethinkdb-dev-database.md index 620cb8f189..d571a121bb 100755 --- a/docs/rethinkdb-dev-database.md +++ b/docs/rethinkdb-dev-database.md @@ -4,7 +4,7 @@ title = "Creating a Local RethinkDB Database for Development" description = "Tutorial demonstrating the setup of an RethinkDB database for development" keywords = ["docker, documentation, about, technology, kitematic, gui, rethink, tutorial"] [menu.main] -parent="smn_workw_kitematic" +parent="toolbox_kitematic" weight=3 +++ diff --git a/docs/userguide.md b/docs/userguide.md index 4943e45562..01792cc58c 100755 --- a/docs/userguide.md +++ b/docs/userguide.md @@ -4,7 +4,7 @@ title = "Kitematic User Guide: Intro & Overview" description = "Documentation that provides an overview of Kitematic and installation instructions" keywords = ["docker, documentation, about, technology, kitematic, gui"] [menu.main] -parent="smn_workw_kitematic" +parent="toolbox_kitematic" +++ From a980a466874ff9569389cf974ba174d34ffb3689 Mon Sep 17 00:00:00 2001 From: Nathan LeClaire Date: Mon, 1 Feb 2016 17:56:35 -0800 Subject: [PATCH 06/28] Set 'Setup Halted' event instead of 'Setup Failed' for exit code 3 Signed-off-by: Nathan LeClaire --- src/utils/SetupUtil.js | 21 ++++++++++++++++----- src/utils/Util.js | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index 02faddafb8..08fb41c750 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -11,6 +11,11 @@ import machine from './DockerMachineUtil'; import docker from './DockerUtil'; import router from '../router'; +// Docker Machine exits with 3 to differentiate pre-create check failures (e.g. +// virtualization isn't enabled) from normal errors during create (exit code +// 1). +const precreateCheckExitCode = 3; + let _retryPromise = null; let _timers = []; @@ -154,11 +159,17 @@ export default { } catch (error) { router.get().transitionTo('setup'); - let novtx = error.message.indexOf('This computer doesn\'t have VT-X/AMD-v enabled') !== -1; - metrics.track(novtx ? 'Setup Halted' : 'Setup Failed', { - virtualBoxVersion, - machineVersion - }); + if (error.code === precreateCheckExitCode) { + metrics.track('Setup Halted', { + virtualBoxVersion, + machineVersion + }); + } else { + metrics.track('Setup Failed', { + virtualBoxVersion, + machineVersion + }); + } let message = error.message.split('\n'); let lastLine = message.length > 1 ? message[message.length - 2] : 'Docker Machine encountered an error.'; diff --git a/src/utils/Util.js b/src/utils/Util.js index c8e376021d..874b429ea6 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -13,7 +13,7 @@ module.exports = { return new Promise((resolve, reject) => { child_process.execFile(args[0], args.slice(1), options, (error, stdout) => { if (error) { - reject(new Error('Encountered an error: ' + error)); + reject(error); } else { resolve(stdout); } From 2bdfb8f2117c2873dd6334aeef1df522e350fe65 Mon Sep 17 00:00:00 2001 From: Victoria Bialas Date: Wed, 3 Feb 2016 23:07:10 -0800 Subject: [PATCH 07/28] added toolbox overview added keywords and weight to the metadata for menu placement Signed-off-by: Victoria Bialas --- docs/images/toolbox-installer.png | Bin 0 -> 138436 bytes docs/toolbox.md | 44 ++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 docs/images/toolbox-installer.png create mode 100644 docs/toolbox.md diff --git a/docs/images/toolbox-installer.png b/docs/images/toolbox-installer.png new file mode 100644 index 0000000000000000000000000000000000000000..84a5b2ff58f19ff2f5e8f2036cab81beefa08893 GIT binary patch literal 138436 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%0Di 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 q@BNyCNIHm;2|A@hD{3oW ++++ +title = "Toolbox Overview" +description = "Documentation that provides an overview of Toolbox" +keywords = ["docker, documentation, about, technology, kitematic, gui, toolbox"] +[menu.main] +parent="workw_toolbox" +weight=1 ++++ + + +# Toolbox Overview + +Docker Toolbox is an installer for quick setup and launch of a Docker environment on Mac and Windows systems. + +![Toolbox installer](images/toolbox-installer.png) + +## What's in the box + +Toolbox includes these Docker tools: + +* Docker Machine for running `docker-machine` commands + +* Docker Engine for running the `docker` commands + +* Docker Compose for running the `docker-compose` commands + +* Kitematic, the Docker GUI + +* a shell preconfigured for a Docker command-line environment + +* Oracle VirtualBox + +## Ready to get started? + +Download Docker Toolbox from the product page. Explore videos, tutorials, and other resources there to help you get started with Docker. + +## Next Steps + +* Get Started with Docker for Mac OS X + +* Get Started with Docker for Windows + +* [Learn about Kitematic](userguide/) From 45afe729626da241f936f3ce943f9e225e01d05f Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 4 Feb 2016 10:13:25 -0800 Subject: [PATCH 08/28] Fix window size file loading on windows Signed-off-by: Jeffrey Morgan --- package.json | 1 - src/browser.js | 7 +++---- src/utils/Util.js | 3 --- src/utils/WebUtil.js | 2 +- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 6536e0e8bf..8d9dca4a81 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "test": "jest -c jest-unit.json", "integration": "jest -c jest-integration.json", "release": "grunt release", - "release-mac": "grunt release-mac", "lint": "jsxhint src" }, "license": "Apache-2.0", diff --git a/src/browser.js b/src/browser.js index 8795c2ddc9..4b2e83af83 100644 --- a/src/browser.js +++ b/src/browser.js @@ -8,18 +8,17 @@ import os from 'os'; import path from 'path'; import child_process from 'child_process'; -var isWin = process.platform === 'win32'; - process.env.NODE_PATH = path.join(__dirname, 'node_modules'); process.env.RESOURCES_PATH = path.join(__dirname, '/../resources'); -if (!isWin) { +if (process.platform !== 'win32') { process.env.PATH = '/usr/local/bin:' + process.env.PATH; } var size = {}, settingsjson = {}; try { - size = JSON.parse(fs.readFileSync(path.join(process.env[isWin ? 'USERPROFILE' : 'HOME'], 'Library', 'Application\ Support', 'Kitematic', 'size'))); + size = JSON.parse(fs.readFileSync(path.join(app.getPath('userData'), 'size'))); } catch (err) {} + try { settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, 'settings.json'), 'utf8')); } catch (err) {} diff --git a/src/utils/Util.js b/src/utils/Util.js index 874b429ea6..590e9c2791 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -62,9 +62,6 @@ module.exports = { // TODO: fix me for windows 7 return 'Documents'; }, - supportDir: function () { - return app.getPath('userData'); - }, CommandOrCtrl: function () { return this.isWindows() ? 'Ctrl' : 'Command'; }, diff --git a/src/utils/WebUtil.js b/src/utils/WebUtil.js index 2d774fe013..f726d57ca1 100644 --- a/src/utils/WebUtil.js +++ b/src/utils/WebUtil.js @@ -10,7 +10,7 @@ import metrics from './MetricsUtil'; var WebUtil = { addWindowSizeSaving: function () { window.addEventListener('resize', function () { - fs.writeFileSync(path.join(util.supportDir(), 'size'), JSON.stringify({ + fs.writeFileSync(path.join(app.getPath('userData'), 'size'), JSON.stringify({ width: window.outerWidth, height: window.outerHeight })); From 33a3f4982d1708095158d155866cee11ab9a7d9e Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 4 Feb 2016 10:25:06 -0800 Subject: [PATCH 09/28] Bump version Signed-off-by: Jeffrey Morgan --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8d9dca4a81..2d8a42cae1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.9.6", + "version": "0.10.0", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 23875cb539cec19ca698e3c0ca6731d5b9a2927b Mon Sep 17 00:00:00 2001 From: Victoria Date: Thu, 4 Feb 2016 10:48:38 -0800 Subject: [PATCH 10/28] Revert "added toolbox overview" --- docs/images/toolbox-installer.png | Bin 138436 -> 0 bytes docs/toolbox.md | 44 ------------------------------ 2 files changed, 44 deletions(-) delete mode 100644 docs/images/toolbox-installer.png delete mode 100644 docs/toolbox.md diff --git a/docs/images/toolbox-installer.png b/docs/images/toolbox-installer.png deleted file mode 100644 index 84a5b2ff58f19ff2f5e8f2036cab81beefa08893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138436 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%0Di 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 q@BNyCNIHm;2|A@hD{3oW -+++ -title = "Toolbox Overview" -description = "Documentation that provides an overview of Toolbox" -keywords = ["docker, documentation, about, technology, kitematic, gui, toolbox"] -[menu.main] -parent="workw_toolbox" -weight=1 -+++ - - -# Toolbox Overview - -Docker Toolbox is an installer for quick setup and launch of a Docker environment on Mac and Windows systems. - -![Toolbox installer](images/toolbox-installer.png) - -## What's in the box - -Toolbox includes these Docker tools: - -* Docker Machine for running `docker-machine` commands - -* Docker Engine for running the `docker` commands - -* Docker Compose for running the `docker-compose` commands - -* Kitematic, the Docker GUI - -* a shell preconfigured for a Docker command-line environment - -* Oracle VirtualBox - -## Ready to get started? - -Download Docker Toolbox from the product page. Explore videos, tutorials, and other resources there to help you get started with Docker. - -## Next Steps - -* Get Started with Docker for Mac OS X - -* Get Started with Docker for Windows - -* [Learn about Kitematic](userguide/) From 9e65afb02bcb6c330ee9a0fd2d4b28a2daf7a3b7 Mon Sep 17 00:00:00 2001 From: Mary Anthony Date: Wed, 10 Feb 2016 21:07:10 -0800 Subject: [PATCH 11/28] Updating Dockerfile Signed-off-by: Mary Anthony --- docs/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Dockerfile b/docs/Dockerfile index 06dd3ad23e..da11b2de13 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -5,7 +5,7 @@ RUN svn checkout https://github.com/docker/compose/trunk/docs /docs/content/comp RUN svn checkout https://github.com/docker/docker/trunk/docs /docs/content/docker RUN svn checkout https://github.com/docker/swarm/trunk/docs /docs/content/swarm RUN svn checkout https://github.com/docker/distribution/trunk/docs /docs/content/registry -RUN svn checkout https://github.com/docker/tutorials/trunk/docs /docs/content +RUN svn checkout https://github.com/docker/notary/trunk/docs /docs/content/notary RUN svn checkout https://github.com/docker/opensource/trunk/docs /docs/content/opensource RUN svn checkout https://github.com/docker/machine/trunk/docs /docs/content/machine RUN svn checkout https://github.com/docker/toolbox/trunk/docs /docs/content/toolbox From 5a2baa13698cc9fb9c942c325cb2a2457bd08b59 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Mon, 15 Feb 2016 16:04:35 -0800 Subject: [PATCH 12/28] Fix typos in comments of src/utils. Signed-off-by: Dongjoon Hyun --- src/utils/SetupUtil.js | 2 +- src/utils/Util.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index 08fb41c750..d000fc26ca 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -91,7 +91,7 @@ export default { try { setupServerActions.started({started: false}); - // Make sure virtulBox and docker-machine are installed + // Make sure virtualBox and docker-machine are installed let virtualBoxInstalled = virtualBox.installed(); let machineInstalled = machine.installed(); if (!virtualBoxInstalled || !machineInstalled) { diff --git a/src/utils/Util.js b/src/utils/Util.js index 590e9c2791..872827c892 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -92,7 +92,7 @@ module.exports = { // An official repo is alphanumeric characters separated by dashes or // underscores. // Examples: myrepo, my-docker-repo, my_docker_repo - // Non-exapmles: mynamespace/myrepo, my%!repo + // Non-examples: mynamespace/myrepo, my%!repo var repoRegexp = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/; return repoRegexp.test(name); }, From 58e77236bffffeb3daf63c058323400e0c7d3552 Mon Sep 17 00:00:00 2001 From: French Ben Date: Thu, 3 Dec 2015 12:14:25 -0800 Subject: [PATCH 13/28] Cleaner socket support and updated unmount calls Signed-off-by: French Ben --- package.json | 1 + src/actions/SetupActions.js | 5 ++ src/app.js | 1 + src/browser.js | 1 - src/components/ContainerHomeFolders.react.js | 1 + .../ContainerSettingsVolumes.react.js | 6 +- src/components/Containers.react.js | 78 +++++++++---------- src/components/Setup.react.js | 25 ++++-- src/utils/DockerMachineUtil.js | 9 ++- src/utils/DockerUtil.js | 47 +++++++++-- src/utils/SetupUtil.js | 63 +++++++++++---- src/utils/Util.js | 16 +++- 12 files changed, 176 insertions(+), 77 deletions(-) diff --git a/package.json b/package.json index 2d8a42cae1..08a3352965 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "dockerode": "^2.2.7", "install": "^0.1.8", "jquery": "^2.1.3", + "JSONStream": "^1.0.7", "mixpanel": "kitematic/mixpanel-node", "mkdirp": "^0.5.0", "node-uuid": "^1.4.3", diff --git a/src/actions/SetupActions.js b/src/actions/SetupActions.js index 9278430224..c4d5bbc4a9 100644 --- a/src/actions/SetupActions.js +++ b/src/actions/SetupActions.js @@ -6,6 +6,11 @@ class SetupActions { this.dispatch({removeVM}); setupUtil.retry(removeVM); } + + useVbox () { + this.dispatch({}); + setupUtil.useVbox(); + } } export default alt.createActions(SetupActions); diff --git a/src/app.js b/src/app.js index 293cf72481..aa8307f965 100644 --- a/src/app.js +++ b/src/app.js @@ -1,4 +1,5 @@ require.main.paths.splice(0, 0, process.env.NODE_PATH); + import electron from 'electron'; const remote = electron.remote; const Menu = remote.Menu; diff --git a/src/browser.js b/src/browser.js index 4b2e83af83..3c4c58445a 100644 --- a/src/browser.js +++ b/src/browser.js @@ -4,7 +4,6 @@ const BrowserWindow = electron.BrowserWindow; import fs from 'fs'; import os from 'os'; - import path from 'path'; import child_process from 'child_process'; diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js index cab35902df..fbbc704bf0 100644 --- a/src/components/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -32,6 +32,7 @@ var ContainerHomeFolder = React.createClass({ mounts.forEach(m => { if (m.Destination === destination) { m.Source = util.windowsToLinuxPath(newSource); + m.Driver = null; } }); diff --git a/src/components/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js index 914fa57494..7462db8c04 100644 --- a/src/components/ContainerSettingsVolumes.react.js +++ b/src/components/ContainerSettingsVolumes.react.js @@ -28,7 +28,7 @@ var ContainerSettingsVolumes = React.createClass({ metrics.track('Choose Directory for Volume'); - var mounts = _.clone(this.props.container.Mounts); + let mounts = _.clone(this.props.container.Mounts); _.each(mounts, m => { if (m.Destination === dockerVol) { m.Source = util.windowsToLinuxPath(directory); @@ -36,7 +36,7 @@ var ContainerSettingsVolumes = React.createClass({ } }); - var binds = mounts.map(m => { + let binds = mounts.map(m => { return m.Source + ':' + m.Destination; }); @@ -50,7 +50,7 @@ var ContainerSettingsVolumes = React.createClass({ from: 'settings' }); - var mounts = _.clone(this.props.container.Mounts); + let mounts = _.clone(this.props.container.Mounts); _.each(mounts, m => { if (m.Destination === dockerVol) { m.Source = null; diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index d7b611168f..655a7930b3 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -106,44 +106,44 @@ var Containers = React.createClass({ metrics.track('Opened Issue Reporter', { from: 'app' }); - shell.openExternal('https://github.com/kitematic/kitematic/issues/new'); + shell.openExternal('https://github.com/docker/kitematic/issues/new'); }, - handleMouseEnterDockerTerminal: function () { - this.setState({ - currentButtonLabel: 'Open terminal to use Docker command line.' - }); - }, - - handleMouseLeaveDockerTerminal: function () { - this.setState({ - currentButtonLabel: '' - }); - }, - - handleMouseEnterReportIssue: function () { - this.setState({ - currentButtonLabel: 'Report an issue or suggest feedback.' - }); - }, - - handleMouseLeaveReportIssue: function () { - this.setState({ - currentButtonLabel: '' - }); - }, - - handleMouseEnterPreferences: function () { - this.setState({ - currentButtonLabel: 'Change app preferences.' - }); - }, - - handleMouseLeavePreferences: function () { - this.setState({ - currentButtonLabel: '' - }); - }, + // handleMouseEnterDockerTerminal: function () { + // this.setState({ + // currentButtonLabel: 'Open terminal to use Docker command line.' + // }); + // }, + // + // handleMouseLeaveDockerTerminal: function () { + // this.setState({ + // currentButtonLabel: '' + // }); + // }, + // + // handleMouseEnterReportIssue: function () { + // this.setState({ + // currentButtonLabel: 'Report an issue or suggest feedback.' + // }); + // }, + // + // handleMouseLeaveReportIssue: function () { + // this.setState({ + // currentButtonLabel: '' + // }); + // }, + // + // handleMouseEnterPreferences: function () { + // this.setState({ + // currentButtonLabel: 'Change app preferences.' + // }); + // }, + // + // handleMouseLeavePreferences: function () { + // this.setState({ + // currentButtonLabel: '' + // }); + // }, render: function () { var sidebarHeaderClass = 'sidebar-header'; @@ -169,9 +169,9 @@ var Containers = React.createClass({

- DOCKER CLI - - + DOCKER CLI + +
diff --git a/src/components/Setup.react.js b/src/components/Setup.react.js index 741322e174..80827ef3da 100644 --- a/src/components/Setup.react.js +++ b/src/components/Setup.react.js @@ -3,12 +3,13 @@ import Router from 'react-router'; import Radial from './Radial.react.js'; import RetinaImage from 'react-retina-image'; import Header from './Header.react'; -import Util from '../utils/Util'; +import util from '../utils/Util'; import metrics from '../utils/MetricsUtil'; import setupStore from '../stores/SetupStore'; import setupActions from '../actions/SetupActions'; import shell from 'shell'; + var Setup = React.createClass({ mixins: [Router.Navigation], @@ -32,6 +33,10 @@ var Setup = React.createClass({ setupActions.retry(false); }, + handleUseVbox: function () { + setupActions.useVbox(); + }, + handleErrorRemoveRetry: function () { console.log('Deleting VM and trying again.' ); setupActions.retry(true); @@ -63,6 +68,12 @@ var Setup = React.createClass({ }, renderProgress: function () { + let title = 'Starting Docker VM'; + let descr = 'To run Docker containers on your computer, Kitematic is starting a Linux virtual machine. This may take a minute...'; + if (util.isNative()) { + title = 'Checking Docker'; + descr = 'To run Docker containers on your computer, Kitematic is checking the Docker connection.'; + } return (
@@ -72,8 +83,8 @@ var Setup = React.createClass({
-

Starting Docker VM

-

To run Docker containers on your computer, Kitematic is starting a Linux virtual machine. This may take a minute...

+

{title}

+

{descr}

@@ -84,14 +95,18 @@ var Setup = React.createClass({ renderError: function () { let deleteVmAndRetry; - if (Util.isLinux()) { + if (util.isLinux()) { if (!this.state.started) { deleteVmAndRetry = ( ); } } else { - if (this.state.started) { + if (util.isNative()) { + deleteVmAndRetry = ( + + ); + } else if (this.state.started) { deleteVmAndRetry = ( ); diff --git a/src/utils/DockerMachineUtil.js b/src/utils/DockerMachineUtil.js index 49886372c4..e676416c30 100644 --- a/src/utils/DockerMachineUtil.js +++ b/src/utils/DockerMachineUtil.js @@ -158,11 +158,12 @@ var DockerMachine = { } }); }); - } else if (util.isLinux()) { + } else if (util.isNative()) { cmd = cmd || process.env.SHELL; - var terminal = util.linuxTerminal(); - if (terminal) - util.execFile(terminal.concat([cmd])).then(() => {}); + var terminal = util.isLinux() ? util.linuxTerminal() : path.join(process.env.RESOURCES_PATH, 'terminal'); + if (terminal) { + util.exec([terminal, cmd]).then(() => {}); + } } else { cmd = cmd || process.env.SHELL; this.url(machineName).then(machineUrl => { diff --git a/src/utils/DockerUtil.js b/src/utils/DockerUtil.js index a06765d330..1942791936 100644 --- a/src/utils/DockerUtil.js +++ b/src/utils/DockerUtil.js @@ -11,6 +11,9 @@ import containerServerActions from '../actions/ContainerServerActions'; import rimraf from 'rimraf'; import stream from 'stream'; import JSONStream from 'JSONStream'; +import Promise from 'bluebird'; + + export default { host: null, @@ -20,20 +23,23 @@ export default { activeContainerName: null, setup (ip, name) { - if (!ip || !name) { + if (!ip && !name) { throw new Error('Falsy ip or name passed to docker client setup'); } + this.host = ip; - if (util.isLinux()) { - this.host = 'localhost'; - this.client = new dockerode({socketPath: '/var/run/docker.sock'}); + if (ip.indexOf('local') !== -1) { + try { + this.client = new dockerode({socketPath: '/var/run/docker.sock'}); + } catch (error) { + throw new Error('Cannot connect to the Docker daemon. Is the daemon running?'); + } } else { let certDir = path.join(util.home(), '.docker/machine/machines/', name); if (!fs.existsSync(certDir)) { throw new Error('Certificate directory does not exist'); } - this.host = ip; this.client = new dockerode({ protocol: 'https', host: ip, @@ -45,6 +51,28 @@ export default { } }, + async version () { + let version = null; + let maxRetries = 10; + let retries = 0; + let error_message = ""; + while (version == null && retries < maxRetries) { + this.client.version((error,data) => { + if (!error) { + version = data.Version; + } else { + error_message = error; + } + retries++; + }); + await Promise.delay(1000); + } + if (version == null) { + throw new Error(error_message); + } + return version; + }, + init () { this.placeholders = JSON.parse(localStorage.getItem('placeholders')) || {}; this.fetchAllContainers(); @@ -88,6 +116,7 @@ export default { container.start((error) => { if (error) { containerServerActions.error({name, error}); + console.log('error starting: %o - %o', name, error); return; } containerServerActions.started({name, error}); @@ -117,7 +146,7 @@ export default { if (!containerData.HostConfig || (containerData.HostConfig && !containerData.HostConfig.PortBindings)) { containerData.PublishAllPorts = true; } - + if (image.Config.Cmd) { containerData.Cmd = image.Config.Cmd; } else if (!image.Config.Entrypoint) { @@ -156,6 +185,7 @@ export default { fetchAllContainers () { this.client.listContainers({all: true}, (err, containers) => { if (err) { + console.error(err); return; } async.map(containers, (container, callback) => { @@ -171,6 +201,7 @@ export default { containers = containers.filter(c => c !== null); if (err) { // TODO: add a global error handler for this + console.error(err); return; } containerServerActions.allUpdated({containers: _.indexBy(containers.concat(_.values(this.placeholders)), 'Name')}); @@ -367,6 +398,8 @@ export default { timestamps: 1 }, (err, logStream) => { if (err) { + // socket hang up can be captured + console.error(err); return; } @@ -393,6 +426,8 @@ export default { timestamps: 1 }, (err, logStream) => { if (err) { + // Socket hang up also can be found here + console.error(err); return; } diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index d000fc26ca..7b50ec6e6a 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -18,6 +18,7 @@ const precreateCheckExitCode = 3; let _retryPromise = null; let _timers = []; +let useNative = util.isNative() ? util.isNative() : true; export default { simulateProgress (estimateSeconds) { @@ -36,12 +37,21 @@ export default { _timers = []; }, + async useVbox () { + metrics.track('Retried Setup with VBox'); + localStorage.setItem('settings.useNative', false); + router.get().transitionTo('loading'); + setupServerActions.error({ error: { message: null }}); + _retryPromise.resolve(); + }, + retry (removeVM) { metrics.track('Retried Setup', { removeVM }); router.get().transitionTo('loading'); + setupServerActions.error({ error: { message: null }}); if (removeVM) { machine.rm().finally(() => { _retryPromise.resolve(); @@ -56,35 +66,50 @@ export default { return _retryPromise.promise; }, - setup() { - return util.isLinux() ? this.nativeSetup() : this.nonNativeSetup(); - }, - - async nativeSetup () { + async setup () { while (true) { try { - docker.setup('localhost', machine.name()); - docker.isDockerRunning(); - - break; + if (util.isNative()) { + localStorage.setItem('setting.useNative', true); + let stats = fs.statSync('/var/run/docker.sock'); + if (stats.isSocket()) { + await this.nativeSetup(); + } else { + throw new Error('File found is not a socket'); + } + } else { + await this.nonNativeSetup(); + } + return; } catch (error) { - router.get().transitionTo('setup'); metrics.track('Native Setup Failed'); setupServerActions.error({error}); - let message = error.message.split('\n'); - let lastLine = message.length > 1 ? message[message.length - 2] : 'Docker Machine encountered an error.'; - bugsnag.notify('Native Setup Failed', lastLine, { - 'Docker Machine Logs': error.message + bugsnag.notify('Native Setup Failed', error.message, { + 'Docker Error': error.message }, 'info'); - this.clearTimers(); await this.pause(); } } }, + async nativeSetup () { + while (true) { + try { + router.get().transitionTo('setup'); + docker.setup(util.isLinux() ? 'localhost':'docker.local'); + setupServerActions.started({started: true}); + this.simulateProgress(20); + return docker.version(); + } catch (error) { + throw new Error(error); + } + } + }, + async nonNativeSetup () { + console.log('Non-native setup'); let virtualBoxVersion = null; let machineVersion = null; while (true) { @@ -127,13 +152,16 @@ export default { } else { let state = await machine.status(); if (state !== 'Running') { + router.get().transitionTo('setup'); + setupServerActions.started({started: true}); if (state === 'Saved') { - router.get().transitionTo('setup'); this.simulateProgress(10); } else if (state === 'Stopped') { - router.get().transitionTo('setup'); this.simulateProgress(25); + } else { + this.simulateProgress(40); } + await machine.start(); } } @@ -151,6 +179,7 @@ export default { if (ip) { docker.setup(ip, machine.name()); + await docker.version(); } else { throw new Error('Could not determine IP from docker-machine.'); } diff --git a/src/utils/Util.js b/src/utils/Util.js index 872827c892..873241ff26 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -37,6 +37,18 @@ module.exports = { isLinux: function () { return process.platform === 'linux'; }, + isNative: function () { + let native = JSON.parse(localStorage.getItem('settings.useNative')); + if (native === null) { + try { + let stats = fs.statSync('/var/run/docker.sock'); + native = true; + } catch(e){ + native = false; + } + } + return native; + }, binsPath: function () { return this.isWindows() ? path.join(this.home(), 'Kitematic-bins') : path.join('/usr/local/bin'); }, @@ -163,9 +175,9 @@ module.exports = { dialog.showMessageBox({ type: 'warning', buttons: ['OK'], - message: 'The terminal emulator symbolic link doesn\'t exists. Please read the Wiki at https://github.com/kitematic/kitematic/wiki/Common-Issues-and-Fixes#early-linux-support-from-zedtux.' + message: 'The terminal emulator symbolic link doesn\'t exists. Please read the Wiki at https://github.com/docker/kitematic/wiki/Early-Linux-Support.' }); - return; + return false; } }, webPorts: ['80', '8000', '8080', '8888', '3000', '5000', '2368', '9200', '8983'] From c64b899259194e7645a4b80653252ab7e09ec690 Mon Sep 17 00:00:00 2001 From: French Ben Date: Thu, 4 Feb 2016 13:20:36 -0800 Subject: [PATCH 14/28] Updated all unmount calls and better socket revamp Signed-off-by: French Ben --- src/components/ContainerListItem.react.js | 2 +- src/components/Containers.react.js | 38 +--------------------- src/components/NewContainerSearch.react.js | 1 - src/components/Setup.react.js | 2 +- src/utils/SetupUtil.js | 1 - 5 files changed, 3 insertions(+), 41 deletions(-) diff --git a/src/components/ContainerListItem.react.js b/src/components/ContainerListItem.react.js index 2791ca9d22..1e6af7a9a7 100644 --- a/src/components/ContainerListItem.react.js +++ b/src/components/ContainerListItem.react.js @@ -97,7 +97,7 @@ var ContainerListItem = React.createClass({ return ( -
  • +
  • {state}
    diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index 655a7930b3..130557f15f 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -26,7 +26,7 @@ var Containers = React.createClass({ containerStore.listen(this.update); }, - componentDidUnmount: function () { + componentWillUnmount: function () { containerStore.unlisten(this.update); }, @@ -109,42 +109,6 @@ var Containers = React.createClass({ shell.openExternal('https://github.com/docker/kitematic/issues/new'); }, - // handleMouseEnterDockerTerminal: function () { - // this.setState({ - // currentButtonLabel: 'Open terminal to use Docker command line.' - // }); - // }, - // - // handleMouseLeaveDockerTerminal: function () { - // this.setState({ - // currentButtonLabel: '' - // }); - // }, - // - // handleMouseEnterReportIssue: function () { - // this.setState({ - // currentButtonLabel: 'Report an issue or suggest feedback.' - // }); - // }, - // - // handleMouseLeaveReportIssue: function () { - // this.setState({ - // currentButtonLabel: '' - // }); - // }, - // - // handleMouseEnterPreferences: function () { - // this.setState({ - // currentButtonLabel: 'Change app preferences.' - // }); - // }, - // - // handleMouseLeavePreferences: function () { - // this.setState({ - // currentButtonLabel: '' - // }); - // }, - render: function () { var sidebarHeaderClass = 'sidebar-header'; if (this.state.sidebarOffset) { diff --git a/src/components/NewContainerSearch.react.js b/src/components/NewContainerSearch.react.js index 06b72dc946..410b4e43ff 100644 --- a/src/components/NewContainerSearch.react.js +++ b/src/components/NewContainerSearch.react.js @@ -73,7 +73,6 @@ module.exports = React.createClass({ nextPage = (page + 1 > this.state.totalPage) ? this.state.totalPage : page + 1; totalPage = this.state.totalPage; } - this.setState({ query: query, loading: true, diff --git a/src/components/Setup.react.js b/src/components/Setup.react.js index 80827ef3da..d72a291076 100644 --- a/src/components/Setup.react.js +++ b/src/components/Setup.react.js @@ -21,7 +21,7 @@ var Setup = React.createClass({ setupStore.listen(this.update); }, - componentDidUnmount: function () { + componentWillUnmount: function () { setupStore.unlisten(this.update); }, diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index 7b50ec6e6a..2e55a8eab1 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -109,7 +109,6 @@ export default { }, async nonNativeSetup () { - console.log('Non-native setup'); let virtualBoxVersion = null; let machineVersion = null; while (true) { From dfdf9e326e853768c5e02b13ae1277a15d645d63 Mon Sep 17 00:00:00 2001 From: French Ben Date: Thu, 11 Feb 2016 13:03:26 -0800 Subject: [PATCH 15/28] Updated exec call for terminal Signed-off-by: French Ben --- src/utils/DockerMachineUtil.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/DockerMachineUtil.js b/src/utils/DockerMachineUtil.js index e676416c30..8cd949f88c 100644 --- a/src/utils/DockerMachineUtil.js +++ b/src/utils/DockerMachineUtil.js @@ -162,7 +162,7 @@ var DockerMachine = { cmd = cmd || process.env.SHELL; var terminal = util.isLinux() ? util.linuxTerminal() : path.join(process.env.RESOURCES_PATH, 'terminal'); if (terminal) { - util.exec([terminal, cmd]).then(() => {}); + util.execFile([terminal, cmd]).then(() => {}); } } else { cmd = cmd || process.env.SHELL; From d1a49abcf6778517602e5f2ff9ea1d4e3836c403 Mon Sep 17 00:00:00 2001 From: French Ben Date: Wed, 2 Mar 2016 17:36:40 -0800 Subject: [PATCH 16/28] Updated logic and removed pref Signed-off-by: French Ben --- src/components/Setup.react.js | 24 +++++++++++------------- src/utils/Util.js | 14 ++++++++++---- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/components/Setup.react.js b/src/components/Setup.react.js index d72a291076..3635092cee 100644 --- a/src/components/Setup.react.js +++ b/src/components/Setup.react.js @@ -101,20 +101,18 @@ var Setup = React.createClass({ ); } + } else if (util.isNative()) { + deleteVmAndRetry = ( + + ); + } else if (this.state.started) { + deleteVmAndRetry = ( + + ); } else { - if (util.isNative()) { - deleteVmAndRetry = ( - - ); - } else if (this.state.started) { - deleteVmAndRetry = ( - - ); - } else { - deleteVmAndRetry = ( - - ); - } + deleteVmAndRetry = ( + + ); } return (
    diff --git a/src/utils/Util.js b/src/utils/Util.js index 873241ff26..f383506ac9 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -38,13 +38,19 @@ module.exports = { return process.platform === 'linux'; }, isNative: function () { - let native = JSON.parse(localStorage.getItem('settings.useNative')); + // let native = JSON.parse(localStorage.getItem('settings.useNative')); + let native = null; if (native === null) { try { - let stats = fs.statSync('/var/run/docker.sock'); + // Check if file exists + fs.statSync('/var/run/docker.sock'); native = true; - } catch(e){ - native = false; + } catch (e) { + if (this.isLinux()) { + native = true; + } else { + native = false; + } } } return native; From e639851f454f836ac1d419ff182e2595337dc0cf Mon Sep 17 00:00:00 2001 From: Thomas Florin Date: Mon, 14 Mar 2016 11:25:49 -0500 Subject: [PATCH 17/28] fix for displaying no description on repo containers that had short descriptions Signed-off-by: Thomas Florin --- src/components/ImageCard.react.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index e9d494ff7a..fe979c9ef1 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -105,6 +105,8 @@ var ImageCard = React.createClass({ var description; if (this.props.image.description) { description = this.props.image.description; + } else if(this.props.image.short_description){ + description = this.props.image.short_description; } else { description = "No description."; } From 3ca0c24fd74fd48cfc08343dd2382a126ce2ea63 Mon Sep 17 00:00:00 2001 From: Brett Bieber Date: Mon, 14 Mar 2016 16:24:09 -0500 Subject: [PATCH 18/28] Grammar fix, s/seem/seems/ The subject of the sentence `an error` is singular, therefore `seems` should be used instead of `seem`. --- src/components/ContainerHome.react.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ContainerHome.react.js b/src/components/ContainerHome.react.js index dad139c8a8..acfe406e0d 100644 --- a/src/components/ContainerHome.react.js +++ b/src/components/ContainerHome.react.js @@ -52,7 +52,7 @@ var ContainerHome = React.createClass({ if (this.props.container.Error) { body = (
    -

    We're sorry. There seem to be an error:

    +

    We're sorry. There seems to be an error:

    {this.props.container.Error}

    If this error is invalid, please file a ticket on our Github repo.

    File Ticket From 570cd6a1876cb8deae6dd9c043b539cc1bbd0409 Mon Sep 17 00:00:00 2001 From: Thomas Florin Date: Mon, 14 Mar 2016 19:06:54 -0500 Subject: [PATCH 19/28] Updated Jest config to work on windows Signed-off-by: Thomas Florin --- jest-unit.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jest-unit.json b/jest-unit.json index bc91f0f679..19685d46ae 100644 --- a/jest-unit.json +++ b/jest-unit.json @@ -13,6 +13,7 @@ "object-assign", "underscore", "source-map-support", - "/node_modules/.*JSONStream" + "/node_modules/.*JSONStream", + "/node_modules/core-js" ] } From 032f94b637705c8d7ecbf8b5cc4e0767bafa8a3e Mon Sep 17 00:00:00 2001 From: Enrico Hoffmann Date: Thu, 17 Mar 2016 10:04:29 +0100 Subject: [PATCH 20/28] #1550 enhancement remove duplicated entry in package.json --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 08a3352965..c4890e6ad9 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ "license": "Apache-2.0", "electron-version": "0.35.4", "dependencies": { - "JSONStream": "^1.0.7", "alt": "^0.16.2", "ansi-to-html": "0.3.0", "any-promise": "^0.1.0", From 20a0a4b6705f9348d41dbb83fda606e07e58438d Mon Sep 17 00:00:00 2001 From: French Ben Date: Tue, 5 Apr 2016 17:14:34 -0700 Subject: [PATCH 21/28] Updated path to work properly on linux Signed-off-by: French Ben --- src/utils/DockerMachineUtil.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utils/DockerMachineUtil.js b/src/utils/DockerMachineUtil.js index 8cd949f88c..634c8059ac 100644 --- a/src/utils/DockerMachineUtil.js +++ b/src/utils/DockerMachineUtil.js @@ -160,9 +160,10 @@ var DockerMachine = { }); } else if (util.isNative()) { cmd = cmd || process.env.SHELL; - var terminal = util.isLinux() ? util.linuxTerminal() : path.join(process.env.RESOURCES_PATH, 'terminal'); + var terminal = util.isLinux() ? util.linuxTerminal() : [path.join(process.env.RESOURCES_PATH, 'terminal')]; + terminal.push(cmd); if (terminal) { - util.execFile([terminal, cmd]).then(() => {}); + util.execFile(terminal).then(() => {}); } } else { cmd = cmd || process.env.SHELL; From 5f1a7833a15def1a8f2df873e3de3e4f6e90d8a8 Mon Sep 17 00:00:00 2001 From: French Ben Date: Wed, 6 Apr 2016 11:41:58 -0700 Subject: [PATCH 22/28] added comment for error Signed-off-by: French Ben --- src/components/ContainerHome.react.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/ContainerHome.react.js b/src/components/ContainerHome.react.js index acfe406e0d..0399c0da93 100644 --- a/src/components/ContainerHome.react.js +++ b/src/components/ContainerHome.react.js @@ -32,6 +32,7 @@ var ContainerHome = React.createClass({ }, handleErrorClick: function () { + // Display wiki for proxy: https://github.com/docker/kitematic/wiki/Common-Proxy-Issues-&-Fixes shell.openExternal('https://github.com/kitematic/kitematic/issues/new'); }, From ff06972d1f2756810aa7c59a2057014d40becb42 Mon Sep 17 00:00:00 2001 From: French Ben Date: Wed, 6 Apr 2016 14:44:46 -0700 Subject: [PATCH 23/28] Removed all localstorage checks Signed-off-by: French Ben --- src/utils/SetupUtil.js | 2 -- src/utils/Util.js | 1 - 2 files changed, 3 deletions(-) diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index 2e55a8eab1..ed624589ea 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -39,7 +39,6 @@ export default { async useVbox () { metrics.track('Retried Setup with VBox'); - localStorage.setItem('settings.useNative', false); router.get().transitionTo('loading'); setupServerActions.error({ error: { message: null }}); _retryPromise.resolve(); @@ -70,7 +69,6 @@ export default { while (true) { try { if (util.isNative()) { - localStorage.setItem('setting.useNative', true); let stats = fs.statSync('/var/run/docker.sock'); if (stats.isSocket()) { await this.nativeSetup(); diff --git a/src/utils/Util.js b/src/utils/Util.js index f383506ac9..6e15f07a44 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -38,7 +38,6 @@ module.exports = { return process.platform === 'linux'; }, isNative: function () { - // let native = JSON.parse(localStorage.getItem('settings.useNative')); let native = null; if (native === null) { try { From 71199eacf0dedb33b42f28f2f35de9ef95aa4a30 Mon Sep 17 00:00:00 2001 From: French Ben Date: Fri, 8 Apr 2016 17:01:08 -0700 Subject: [PATCH 24/28] Added issue template Signed-off-by: French Ben --- .github/ISSUE_TEMPLATE.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000..9bff3b7cce --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,11 @@ +### Expected behavior + +### Actual behavior + +### Information about the Issue + + +### Steps to reproduce the behavior + + 1. ... + 2. ... From 61447303d18f28fa0870fce176d50d7f9ada971d Mon Sep 17 00:00:00 2001 From: French Ben Date: Fri, 8 Apr 2016 19:46:58 -0700 Subject: [PATCH 25/28] Updated default cmd Signed-off-by: French Ben --- src/utils/DockerUtil.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/DockerUtil.js b/src/utils/DockerUtil.js index 1942791936..6994d22ec3 100644 --- a/src/utils/DockerUtil.js +++ b/src/utils/DockerUtil.js @@ -150,7 +150,7 @@ export default { if (image.Config.Cmd) { containerData.Cmd = image.Config.Cmd; } else if (!image.Config.Entrypoint) { - containerData.Cmd = 'bash'; + containerData.Cmd = 'sh'; } let existing = this.client.getContainer(name); From d0e490dd6e320192c9cd2f5b4c7e1a607f03bc3c Mon Sep 17 00:00:00 2001 From: French Ben Date: Mon, 11 Apr 2016 16:08:13 -0700 Subject: [PATCH 26/28] Added closing of event listener Signed-off-by: French Ben --- src/app.js | 6 ++++++ src/browser.js | 1 + src/utils/ContainerUtil.js | 1 - src/utils/DockerUtil.js | 26 +++++++++++++++++--------- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/app.js b/src/app.js index aa8307f965..644f366105 100644 --- a/src/app.js +++ b/src/app.js @@ -66,8 +66,14 @@ setupUtil.setup().then(() => { throw err; }); + ipcRenderer.on('application:quitting', () => { + docker.detachEvent(); if (localStorage.getItem('settings.closeVMOnQuit') === 'true') { machine.stop(); } }); + +window.onbeforeunload = function () { + docker.detachEvent(); +}; diff --git a/src/browser.js b/src/browser.js index 3c4c58445a..50beae7e69 100644 --- a/src/browser.js +++ b/src/browser.js @@ -47,6 +47,7 @@ app.on('ready', function () { return false; }); + if (os.platform() === 'win32') { mainWindow.on('close', function () { mainWindow.webContents.send('application:quitting'); diff --git a/src/utils/ContainerUtil.js b/src/utils/ContainerUtil.js index 2a9496a6e0..a19576970f 100644 --- a/src/utils/ContainerUtil.js +++ b/src/utils/ContainerUtil.js @@ -33,7 +33,6 @@ var ContainerUtil = { var [dockerPort, portType] = key.split('/'); var localUrl = null; var port = null; - if (value && value.length) { port = value[0].HostPort; } diff --git a/src/utils/DockerUtil.js b/src/utils/DockerUtil.js index 1942791936..d7cee5c174 100644 --- a/src/utils/DockerUtil.js +++ b/src/utils/DockerUtil.js @@ -19,7 +19,8 @@ export default { host: null, client: null, placeholders: {}, - streams: {}, + stream: null, + eventStream: null, activeContainerName: null, setup (ip, name) { @@ -377,7 +378,7 @@ export default { }, active (name) { - this.detach(); + this.detachLog(); this.activeContainerName = name; if (name) { @@ -431,9 +432,7 @@ export default { return; } - if (this.stream) { - this.detach(); - } + this.detachLog() this.stream = logStream; let timeout = null; @@ -452,14 +451,22 @@ export default { }); }, - detach () { + detachLog() { if (this.stream) { this.stream.destroy(); this.stream = null; } }, + detachEvent() { + if (this.eventStream) { + this.eventStream.destroy(); + this.eventStream = null; + } + }, + listen () { + this.detachEvent() this.client.getEvents((error, stream) => { if (error || !stream) { // TODO: Add app-wide error handler @@ -474,13 +481,13 @@ export default { if (data.status === 'destroy') { containerServerActions.destroyed({id: data.id}); - this.detach(data.id); + this.detachLog() } else if (data.status === 'kill') { containerServerActions.kill({id: data.id}); - this.detach(data.id); + this.detachLog() } else if (data.status === 'stop') { containerServerActions.stopped({id: data.id}); - this.detach(data.id); + this.detachLog() } else if (data.status === 'create') { this.logs(); this.fetchContainer(data.id); @@ -491,6 +498,7 @@ export default { this.fetchContainer(data.id); } }); + this.eventStream = stream; }); }, From 76980a6e5baa546eb2528189b10edee533cef465 Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Fri, 17 Jul 2015 19:06:15 -0400 Subject: [PATCH 27/28] Added support for creating containers from local images Signed-off-by: FrenchBen --- CONTRIBUTING.md | 12 +-- src/actions/ContainerActions.js | 4 +- src/actions/ImageActions.js | 16 +++ src/actions/ImageServerActions.js | 14 +++ src/actions/TagActions.js | 4 + src/components/ImageCard.react.js | 110 +++++++++++++++------ src/components/NewContainerSearch.react.js | 58 ++++++++++- src/stores/ImageStore.js | 56 +++++++++++ src/stores/TagStore.js | 9 ++ src/utils/DockerUtil.js | 94 +++++++++++++----- styles/new-container.less | 33 +++++++ 11 files changed, 345 insertions(+), 65 deletions(-) create mode 100644 src/actions/ImageActions.js create mode 100644 src/actions/ImageServerActions.js create mode 100644 src/stores/ImageStore.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 21febb49bd..59c8d9f32b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,18 +17,18 @@ Before you file an issue or a pull request, read the following tips on how to ke - [License](#license) -### Prerequisites for developing Kitematic on Mac -You will need to install: +### Prerequisites for developing Kitematic on Mac +You will need to install: - The [Docker Toolbox](https://docker.com/toolbox) - [Node.js](https://nodejs.org/) - Wine `brew install wine` (only if you want to generate a Windows release on OS X) -- The latest Xcode from the Apple App Store. +- The latest Xcode from the Apple App Store. -### Prerequisites for developing Kitematic on Windows -You will need to install: +### Prerequisites for developing Kitematic on Windows +You will need to install: - The [Docker Toolbox](https://docker.com/toolbox) - [Node.js](https://nodejs.org/) -- Open a command prompt (`cmd`) and run the command `mkdir ~/AppData/Roaming/npm` +- Open a command prompt (`cmd`) and run the command `mkdir ~/AppData/Roaming/npm` - [Visual Studio 2013 Community](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) (or similar) - You do not need to install any optional packages during install. - [Python](https://www.python.org/downloads/release/python-2710/) diff --git a/src/actions/ContainerActions.js b/src/actions/ContainerActions.js index a9c2f4a61c..5470a241b6 100644 --- a/src/actions/ContainerActions.js +++ b/src/actions/ContainerActions.js @@ -35,8 +35,8 @@ class ContainerActions { this.dispatch(); } - run (name, repo, tag) { - dockerUtil.run(name, repo, tag); + run (name, repo, tag, local=false) { + dockerUtil.run(name, repo, tag, local); } active (name) { diff --git a/src/actions/ImageActions.js b/src/actions/ImageActions.js new file mode 100644 index 0000000000..518f8aaa07 --- /dev/null +++ b/src/actions/ImageActions.js @@ -0,0 +1,16 @@ +import alt from '../alt'; +import dockerUtil from '../utils/DockerUtil'; + +class ImageActions { + + all () { + this.dispatch({}); + dockerUtil.fetchAllImages(); + } + + destroy (image) { + dockerUtil.removeImage(image); + } +} + +export default alt.createActions(ImageActions); diff --git a/src/actions/ImageServerActions.js b/src/actions/ImageServerActions.js new file mode 100644 index 0000000000..e5c49e7bbd --- /dev/null +++ b/src/actions/ImageServerActions.js @@ -0,0 +1,14 @@ +import alt from '../alt'; + +class ImageServerActions { + constructor () { + this.generateActions( + 'added', + 'updated', + 'destroyed', + 'error' + ); + } +} + +export default alt.createActions(ImageServerActions); diff --git a/src/actions/TagActions.js b/src/actions/TagActions.js index 36ffd843e1..27e071cdd2 100644 --- a/src/actions/TagActions.js +++ b/src/actions/TagActions.js @@ -6,6 +6,10 @@ class TagActions { this.dispatch({repo}); regHubUtil.tags(repo); } + + localTags (repo, tags) { + this.dispatch({repo, tags}); + } } export default alt.createActions(TagActions); diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index fe979c9ef1..ed55b17020 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -5,6 +5,7 @@ import shell from 'shell'; import RetinaImage from 'react-retina-image'; import metrics from '../utils/MetricsUtil'; import containerActions from '../actions/ContainerActions'; +import imageActions from '../actions/ImageActions'; import containerStore from '../stores/ContainerStore'; import tagStore from '../stores/TagStore'; import tagActions from '../actions/TagActions'; @@ -14,8 +15,8 @@ var ImageCard = React.createClass({ mixins: [Router.Navigation], getInitialState: function () { return { - tags: [], - chosenTag: 'latest' + tags: this.props.tags || [], + chosenTag: this.props.chosenTag || 'latest' }; }, componentDidMount: function () { @@ -49,11 +50,14 @@ var ImageCard = React.createClass({ private: this.props.image.is_private, official: this.props.image.namespace === 'library', userowned: this.props.image.is_user_repo, - recommended: this.props.image.is_recommended + recommended: this.props.image.is_recommended, + local: this.props.image.is_local || false }); let name = containerStore.generateName(this.props.image.name); - let repo = this.props.image.namespace === 'library' ? this.props.image.name : this.props.image.namespace + '/' + this.props.image.name; - containerActions.run(name, repo, this.state.chosenTag); + let localImage = this.props.image.is_local || false; + let repo = (this.props.image.namespace === 'library' || this.props.image.namespace === 'local') ? this.props.image.name : this.props.image.namespace + '/' + this.props.image.name; + + containerActions.run(name, repo, this.state.chosenTag, localImage); this.transitionTo('containerHome', {name}); }, handleMenuOverlayClick: function () { @@ -67,7 +71,12 @@ var ImageCard = React.createClass({ handleTagOverlayClick: function () { let $tagOverlay = $(this.getDOMNode()).find('.tag-overlay'); $tagOverlay.fadeIn(300); - tagActions.tags(this.props.image.namespace + '/' + this.props.image.name); + let localImage = this.props.image.is_local || false; + if (localImage) { + tagActions.localTags(this.props.image.namespace + '/' + this.props.image.name, this.props.tags); + } else { + tagActions.tags(this.props.image.namespace + '/' + this.props.image.name); + } }, handleCloseTagOverlay: function () { let $menuOverlay = $(this.getDOMNode()).find('.menu-overlay'); @@ -75,6 +84,11 @@ var ImageCard = React.createClass({ var $tagOverlay = $(this.getDOMNode()).find('.tag-overlay'); $tagOverlay.fadeOut(300); }, + handleDeleteImgClick: function (image) { + if (this.state.chosenTag) { + imageActions.destroy(image.RepoTags[0].split(':')[0] + ':' + this.state.chosenTag); + } + }, handleRepoClick: function () { var repoUri = 'https://hub.docker.com/'; if (this.props.image.namespace === 'library') { @@ -108,10 +122,9 @@ var ImageCard = React.createClass({ } else if(this.props.image.short_description){ description = this.props.image.short_description; } else { - description = "No description."; + description = 'No description.'; } var logoStyle = { - //backgroundImage: `linear-gradient(-180deg, ${this.props.image.gradient_start} 4%, ${this.props.image.gradient_end} 100%)` backgroundColor: this.props.image.gradient_start }; var imgsrc; @@ -150,21 +163,75 @@ var ImageCard = React.createClass({ ); } - let favCount = (this.props.image.star_count < 1000) ? numeral(this.props.image.star_count).value() : numeral(this.props.image.star_count).format('0.0a').toUpperCase(); - let pullCount = (this.props.image.pull_count < 1000) ? numeral(this.props.image.pull_count).value() : numeral(this.props.image.pull_count).format('0a').toUpperCase(); - return ( -
    + + let create; + let overlay; + if (this.props.image.is_local) { + create = ( +
    +
    + {this.state.chosenTag} + +
    +
    + +
    +
    + CREATE +
    +
    + ); + overlay = (
    SELECTED TAG: {this.state.chosenTag}
    -
    - VIEW ON DOCKER HUB +
    + Delete Tag
    +

    Prior to delete, stop all containers
    using the above tag

    + ); + } else { + let favCount = (this.props.image.star_count < 1000) ? numeral(this.props.image.star_count).value() : numeral(this.props.image.star_count).format('0.0a').toUpperCase(); + let pullCount = (this.props.image.pull_count < 1000) ? numeral(this.props.image.pull_count).value() : numeral(this.props.image.pull_count).format('0a').toUpperCase(); + create = ( +
    +
    + + {favCount} + + {pullCount} +
    +
    + +
    +
    + CREATE +
    +
    + ); + + overlay = ( +
    +
    + SELECTED TAG: {this.state.chosenTag} +
    +
    + VIEW ON DOCKER HUB +
    +
    + +
    +
    + ); + } + return ( +
    + {overlay}

    Please select an image tag.

    {tags} @@ -187,20 +254,7 @@ var ImageCard = React.createClass({ {description}
    -
    -
    - - {favCount} - - {pullCount} -
    -
    - -
    -
    - CREATE -
    -
    + {create}
    ); diff --git a/src/components/NewContainerSearch.react.js b/src/components/NewContainerSearch.react.js index 410b4e43ff..23550d06a1 100644 --- a/src/components/NewContainerSearch.react.js +++ b/src/components/NewContainerSearch.react.js @@ -10,6 +10,8 @@ import repositoryActions from '../actions/RepositoryActions'; import repositoryStore from '../stores/RepositoryStore'; import accountStore from '../stores/AccountStore'; import accountActions from '../actions/AccountActions'; +import imageActions from '../actions/ImageActions'; +import imageStore from '../stores/ImageStore'; var _searchPromise = null; @@ -20,6 +22,8 @@ module.exports = React.createClass({ query: '', loading: repositoryStore.loading(), repos: repositoryStore.all(), + images: imageStore.all(), + imagesErr: imageStore.error, username: accountStore.getState().username, verified: accountStore.getState().verified, accountLoading: accountStore.getState().loading, @@ -34,6 +38,7 @@ module.exports = React.createClass({ this.refs.searchInput.getDOMNode().focus(); repositoryStore.listen(this.update); accountStore.listen(this.updateAccount); + imageStore.listen(this.updateImage); repositoryActions.search(); }, componentWillUnmount: function () { @@ -51,7 +56,14 @@ module.exports = React.createClass({ currentPage: repositoryStore.getState().currentPage, totalPage: repositoryStore.getState().totalPage, previousPage: repositoryStore.getState().previousPage, - nextPage: repositoryStore.getState().nextPage + nextPage: repositoryStore.getState().nextPage, + error: repositoryStore.getState().error + }); + }, + updateImage: function (imgStore) { + this.setState({ + images: imgStore.images, + error: imgStore.error }); }, updateAccount: function () { @@ -79,7 +91,8 @@ module.exports = React.createClass({ currentPage: page, previousPage: previousPage, nextPage: nextPage, - totalPage: totalPage + totalPage: totalPage, + error: null }); _searchPromise = Promise.delay(200).cancellable().then(() => { @@ -101,11 +114,17 @@ module.exports = React.createClass({ }, handleFilter: function (filter) { + this.setState({error: null}); + // If we're clicking on the filter again - refresh if (filter === 'userrepos' && this.getQuery().filter === 'userrepos') { repositoryActions.repos(); } + if (filter === 'userimages' && this.getQuery().filter === 'userimages') { + imageActions.all(); + } + if (filter === 'recommended' && this.getQuery().filter === 'recommended') { repositoryActions.recommended(); } @@ -187,10 +206,16 @@ module.exports = React.createClass({ ) : null; + let errorMsg = null; + if (this.state.error === null || this.state.error.message.indexOf('getaddrinfo ENOTFOUND') !== -1) { + errorMsg = 'There was an error contacting Docker Hub.'; + } else { + errorMsg = this.state.error.message.replace('HTTP code is 409 which indicates error: conflict - ', ''); + } if (this.state.error) { results = (
    -

    There was an error contacting Docker Hub.

    +

    {errorMsg}

    ); paginateResults = null; @@ -268,6 +293,32 @@ module.exports = React.createClass({ {otherResults}
    ); + } else if (filter === 'userimages') { + let userImageItems = this.state.images.map(image => { + let repo = image.RepoTags[0].split(':')[0]; + if (repo.indexOf('/') === -1) { + repo = 'local/' + repo; + } + [image.namespace, image.name] = repo.split('/'); + image.description = null; + let tags = image.tags.join('-'); + image.star_count = 0; + image.is_local = true; + return (); + }); + let userImageResults = userImageItems.length ? ( +
    +

    My Images

    +
    + {userImageItems} +
    +
    + ) : null; + results = ( +
    + {userImageResults} +
    + ); } else { if (this.state.query.length) { results = ( @@ -316,6 +367,7 @@ module.exports = React.createClass({ All Recommended My Repos + My Images
    diff --git a/src/stores/ImageStore.js b/src/stores/ImageStore.js new file mode 100644 index 0000000000..984a085545 --- /dev/null +++ b/src/stores/ImageStore.js @@ -0,0 +1,56 @@ +import alt from '../alt'; +import imageActions from '../actions/ImageActions'; +import imageServerActions from '../actions/ImageServerActions'; + +class ImageStore { + constructor () { + this.bindActions(imageActions); + this.bindActions(imageServerActions); + this.results = []; + this.images = []; + this.imagesLoading = false; + this.resultsLoading = false; + this.error = null; + } + + error (error) { + this.setState({error: error, imagesLoading: false, resultsLoading: false}); + } + + clearError () { + this.setState({error: null}); + } + + destroyed (data) { + let images = this.images; + if ((data && data[1] && data[1].Deleted)) { + delete images[data[1].Deleted]; + } + this.setState({error: null}); + } + + updated (images) { + let tags = {}; + let finalImages = []; + images.map((image) => { + image.RepoTags.map(repoTags => { + let [name, tag] = repoTags.split(':'); + if (typeof tags[name] !== 'undefined') { + finalImages[tags[name]].tags.push(tag); + } else { + image.tags = [tag]; + tags[name] = finalImages.length; + finalImages.push(image); + } + }); + }); + this.setState({error: null, images: finalImages, imagesLoading: false}); + } + + static all () { + let state = this.getState(); + return state.images; + } +} + +export default alt.createStore(ImageStore); diff --git a/src/stores/TagStore.js b/src/stores/TagStore.js index 13a2b980cf..4ddb4c5a05 100644 --- a/src/stores/TagStore.js +++ b/src/stores/TagStore.js @@ -21,6 +21,15 @@ class TagStore { this.emitChange(); } + localTags ({repo, tags}) { + let data = []; + tags.map((value) => { + data.push({'name': value}); + }); + this.loading[repo] = true; + this.tagsUpdated({repo, tags: data || []}); + } + tagsUpdated ({repo, tags}) { this.tags[repo] = tags; this.loading[repo] = false; diff --git a/src/utils/DockerUtil.js b/src/utils/DockerUtil.js index f6b92f6feb..f107f3558f 100644 --- a/src/utils/DockerUtil.js +++ b/src/utils/DockerUtil.js @@ -8,6 +8,8 @@ import util from './Util'; import hubUtil from './HubUtil'; import metrics from '../utils/MetricsUtil'; import containerServerActions from '../actions/ContainerServerActions'; +import imageServerActions from '../actions/ImageServerActions'; +import Promise from 'bluebird'; import rimraf from 'rimraf'; import stream from 'stream'; import JSONStream from 'JSONStream'; @@ -15,13 +17,14 @@ import Promise from 'bluebird'; -export default { +var DockerUtil = { host: null, client: null, placeholders: {}, stream: null, eventStream: null, activeContainerName: null, + localImages: null, setup (ip, name) { if (!ip && !name) { @@ -77,6 +80,7 @@ export default { init () { this.placeholders = JSON.parse(localStorage.getItem('placeholders')) || {}; this.fetchAllContainers(); + this.fetchAllImages(); this.listen(); // Resume pulling containers that were previously being pulled @@ -170,6 +174,7 @@ export default { }); }); }); + this.fetchAllImages(); }, fetchContainer (id) { @@ -210,7 +215,36 @@ export default { }); }, - run (name, repository, tag) { + fetchAllImages () { + this.client.listImages((err, list) => { + if (err) { + imageServerActions.error(err); + } else { + this.localImages = list; + imageServerActions.updated(list); + } + }); + }, + + removeImage (selectedRepoTag) { + this.localImages.some((image) => { + image.RepoTags.map(repoTag => { + if (repoTag === selectedRepoTag) { + this.client.getImage(selectedRepoTag).remove({'force': true}, (err, data) => { + if (err) { + console.error(err); + imageServerActions.error(err); + } else { + imageServerActions.destroyed(data); + } + }); + return true; + } + }); + }); + }, + + run (name, repository, tag, local = false) { tag = tag || 'latest'; let imageName = repository + ':' + tag; @@ -231,30 +265,33 @@ export default { this.placeholders[name] = placeholderData; localStorage.setItem('placeholders', JSON.stringify(this.placeholders)); - - this.pullImage(repository, tag, error => { - if (error) { - containerServerActions.error({name, error}); - return; - } - - if (!this.placeholders[name]) { - return; - } - + if (local) { this.createContainer(name, {Image: imageName, Tty: true, OpenStdin: true}); - }, + } else { + this.pullImage(repository, tag, error => { + if (error) { + containerServerActions.error({name, error}); + return; + } - // progress is actually the progression PER LAYER (combined in columns) - // not total because it's not accurate enough - progress => { - containerServerActions.progress({name, progress}); - }, + if (!this.placeholders[name]) { + return; + } + + this.createContainer(name, {Image: imageName, Tty: true, OpenStdin: true}); + }, + + // progress is actually the progression PER LAYER (combined in columns) + // not total because it's not accurate enough + progress => { + containerServerActions.progress({name, progress}); + }, - () => { - containerServerActions.waiting({name, waiting: true}); - }); + () => { + containerServerActions.waiting({name, waiting: true}); + }); + } }, updateContainer (name, data) { @@ -474,9 +511,11 @@ export default { } stream.setEncoding('utf8'); - stream.pipe(JSONStream.parse()).on('data', data => { - if (data.status === 'pull' || data.status === 'untag' || data.status === 'delete' || data.status === 'attach') { - return; + stream.on('data', json => { + let data = JSON.parse(json); + + if (data.status === 'pull' || data.status === 'untag' || data.status === 'delete' || data.status === 'attach') { + this.fetchAllImages(); } if (data.status === 'destroy') { @@ -519,6 +558,7 @@ export default { this.client.pull(repository + ':' + tag, opts, (err, stream) => { if (err) { + console.log('Err: %o', err); callback(err); return; } @@ -563,7 +603,7 @@ export default { if (i < leftOverLayers) { layerAmount += 1; } - columns.progress[i] = {layerIDs: [], nbLayers:0 , maxLayers: layerAmount, value: 0.0}; + columns.progress[i] = {layerIDs: [], nbLayers: 0, maxLayers: layerAmount, value: 0.0}; } } @@ -617,3 +657,5 @@ export default { }); } }; + +module.exports = DockerUtil; diff --git a/styles/new-container.less b/styles/new-container.less index 7ca9247a3d..1a08ce9807 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -67,6 +67,10 @@ justify-content: center; flex-shrink: 0; + .error { + color: red; + } + img { width: 380px; } @@ -160,6 +164,10 @@ font-weight: 500; margin-right: 0.7rem; } + .results-userimages { + border-left: 1px solid @gray-lighter; + padding-left: 1.2rem; + } } } } @@ -227,6 +235,31 @@ bottom: 1rem; right: 1rem; } + .remove { + display: flex; + flex: 1 auto; + justify-content: center; + margin: 0.8rem 0 0 0; + a { + display: block; + text-decoration: none; + cursor: default; + &:focus { + outline: 0; + } + &.active { + .btn-delete { + opacity: 0.3; + } + } + } + } + .small { + color: red; + text-align: center; + padding-top: 5px; + font-size: 75%; + } } .tag-overlay { z-index: 1000; From db5d9e015eb67c0ac8dda36f23b263933d7bcd13 Mon Sep 17 00:00:00 2001 From: French Ben Date: Fri, 5 Feb 2016 15:29:38 -0800 Subject: [PATCH 28/28] Merged master and updated logic for local images Signed-off-by: French Ben --- src/actions/ImageActions.js | 2 +- src/components/ImageCard.react.js | 9 ++- src/components/NewContainerSearch.react.js | 70 ++++++++++++---------- src/stores/ImageStore.js | 3 + src/utils/DockerUtil.js | 44 +++++++++++--- styles/new-container.less | 1 + 6 files changed, 84 insertions(+), 45 deletions(-) diff --git a/src/actions/ImageActions.js b/src/actions/ImageActions.js index 518f8aaa07..fe91c7d9b9 100644 --- a/src/actions/ImageActions.js +++ b/src/actions/ImageActions.js @@ -5,7 +5,7 @@ class ImageActions { all () { this.dispatch({}); - dockerUtil.fetchAllImages(); + dockerUtil.refresh(); } destroy (image) { diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index ed55b17020..2816757695 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -85,7 +85,7 @@ var ImageCard = React.createClass({ $tagOverlay.fadeOut(300); }, handleDeleteImgClick: function (image) { - if (this.state.chosenTag) { + if (this.state.chosenTag && !this.props.image.inUse) { imageActions.destroy(image.RepoTags[0].split(':')[0] + ':' + this.state.chosenTag); } }, @@ -164,8 +164,7 @@ var ImageCard = React.createClass({ ); } - let create; - let overlay; + let create, overlay; if (this.props.image.is_local) { create = (
    @@ -187,9 +186,9 @@ var ImageCard = React.createClass({ SELECTED TAG: {this.state.chosenTag}
    - Delete Tag + Delete Tag
    -

    Prior to delete, stop all containers
    using the above tag

    + {this.props.image.inUse ?

    To delete, remove all containers
    using the above image

    : null }
    diff --git a/src/components/NewContainerSearch.react.js b/src/components/NewContainerSearch.react.js index 23550d06a1..886ad17817 100644 --- a/src/components/NewContainerSearch.react.js +++ b/src/components/NewContainerSearch.react.js @@ -239,6 +239,34 @@ module.exports = React.createClass({
    ); paginateResults = null; + } else if (filter === 'userimages') { + let userImageItems = this.state.images.map(image => { + let repo = image.RepoTags[0].split(':')[0]; + if (repo.indexOf('/') === -1) { + repo = 'local/' + repo; + } + [image.namespace, image.name] = repo.split('/'); + image.description = null; + let tags = image.tags.join('-'); + image.star_count = 0; + image.is_local = true; + return (); + }); + let userImageResults = userImageItems.length ? ( +
    +
    +

    My Images

    +
    + {userImageItems} +
    +
    +
    + ) :
    +

    Cannot find any local image.

    +
    ; + results = ( + {userImageResults} + ); } else if (this.state.loading) { results = (
    @@ -293,32 +321,6 @@ module.exports = React.createClass({ {otherResults}
    ); - } else if (filter === 'userimages') { - let userImageItems = this.state.images.map(image => { - let repo = image.RepoTags[0].split(':')[0]; - if (repo.indexOf('/') === -1) { - repo = 'local/' + repo; - } - [image.namespace, image.name] = repo.split('/'); - image.description = null; - let tags = image.tags.join('-'); - image.star_count = 0; - image.is_local = true; - return (); - }); - let userImageResults = userImageItems.length ? ( -
    -

    My Images

    -
    - {userImageItems} -
    -
    - ) : null; - results = ( -
    - {userImageResults} -
    - ); } else { if (this.state.query.length) { results = ( @@ -350,17 +352,23 @@ module.exports = React.createClass({ 'icon-search': true, 'search-icon': true }); + let searchClasses = classNames('search-bar'); + if (filter === 'userimages') { + searchClasses = classNames('search-bar', { + hidden: true + }); + } return (
    -
    - -
    -
    -
    +
    + +
    +
    +
    FILTER BY diff --git a/src/stores/ImageStore.js b/src/stores/ImageStore.js index 984a085545..397b3c3c7e 100644 --- a/src/stores/ImageStore.js +++ b/src/stores/ImageStore.js @@ -37,6 +37,9 @@ class ImageStore { let [name, tag] = repoTags.split(':'); if (typeof tags[name] !== 'undefined') { finalImages[tags[name]].tags.push(tag); + if (image.inUse) { + finalImages[tags[name]].inUse = image.inUse; + } } else { image.tags = [tag]; tags[name] = finalImages.length; diff --git a/src/utils/DockerUtil.js b/src/utils/DockerUtil.js index f107f3558f..c61d00f8c5 100644 --- a/src/utils/DockerUtil.js +++ b/src/utils/DockerUtil.js @@ -13,7 +13,6 @@ import Promise from 'bluebird'; import rimraf from 'rimraf'; import stream from 'stream'; import JSONStream from 'JSONStream'; -import Promise from 'bluebird'; @@ -25,6 +24,7 @@ var DockerUtil = { eventStream: null, activeContainerName: null, localImages: null, + imagesUsed: [], setup (ip, name) { if (!ip && !name) { @@ -79,8 +79,7 @@ var DockerUtil = { init () { this.placeholders = JSON.parse(localStorage.getItem('placeholders')) || {}; - this.fetchAllContainers(); - this.fetchAllImages(); + this.refresh(); this.listen(); // Resume pulling containers that were previously being pulled @@ -170,11 +169,11 @@ var DockerUtil = { this.startContainer(name); delete this.placeholders[name]; localStorage.setItem('placeholders', JSON.stringify(this.placeholders)); + this.refresh(); }); }); }); }); - this.fetchAllImages(); }, fetchContainer (id) { @@ -194,12 +193,17 @@ var DockerUtil = { console.error(err); return; } + this.imagesUsed = []; async.map(containers, (container, callback) => { this.client.getContainer(container.Id).inspect((error, container) => { if (error) { callback(null, null); return; } + let imgSha = container.Image.replace('sha256:', ''); + if (_.indexOf(this.imagesUsed, imgSha) === -1) { + this.imagesUsed.push(imgSha); + } container.Name = container.Name.replace('/', ''); callback(null, container); }); @@ -211,6 +215,7 @@ var DockerUtil = { return; } containerServerActions.allUpdated({containers: _.indexBy(containers.concat(_.values(this.placeholders)), 'Name')}); + this.fetchAllImages(); }); }); }, @@ -220,6 +225,14 @@ var DockerUtil = { if (err) { imageServerActions.error(err); } else { + list.map((image, idx) => { + let imgSha = image.Id.replace('sha256:', ''); + if (_.indexOf(this.imagesUsed, imgSha) !== -1) { + list[idx].inUse = true; + } else { + list[idx].inUse = false; + } + }); this.localImages = list; imageServerActions.updated(list); } @@ -236,6 +249,7 @@ var DockerUtil = { imageServerActions.error(err); } else { imageServerActions.destroyed(data); + this.refresh(); } }); return true; @@ -271,6 +285,7 @@ var DockerUtil = { this.pullImage(repository, tag, error => { if (error) { containerServerActions.error({name, error}); + this.refresh(); return; } @@ -299,6 +314,7 @@ var DockerUtil = { existing.inspect((error, existingData) => { if (error) { containerServerActions.error({name, error}); + this.refresh(); return; } @@ -335,6 +351,7 @@ var DockerUtil = { if (error) { // TODO: handle error containerServerActions.error({newName, error}); + this.refresh(); } rimraf(newPath, () => { if (fs.existsSync(oldPath)) { @@ -356,11 +373,13 @@ var DockerUtil = { this.client.getContainer(name).stop({t: 5}, stopError => { if (stopError && stopError.statusCode !== 304) { containerServerActions.error({name, stopError}); + this.refresh(); return; } this.client.getContainer(name).start(startError => { if (startError && startError.statusCode !== 304) { containerServerActions.error({name, startError}); + this.refresh(); return; } this.fetchContainer(name); @@ -372,6 +391,7 @@ var DockerUtil = { this.client.getContainer(name).stop({t: 5}, error => { if (error && error.statusCode !== 304) { containerServerActions.error({name, error}); + this.refresh(); return; } this.fetchContainer(name); @@ -382,6 +402,7 @@ var DockerUtil = { this.client.getContainer(name).start(error => { if (error && error.statusCode !== 304) { containerServerActions.error({name, error}); + this.refresh(); return; } this.fetchContainer(name); @@ -393,15 +414,17 @@ var DockerUtil = { containerServerActions.destroyed({id: name}); delete this.placeholders[name]; localStorage.setItem('placeholders', JSON.stringify(this.placeholders)); + this.refresh(); return; } let container = this.client.getContainer(name); - container.unpause(function () { - container.kill(function () { - container.remove(function (error) { + container.unpause( () => { + container.kill( () => { + container.remove( (error) => { if (error) { containerServerActions.error({name, error}); + this.refresh(); return; } containerServerActions.destroyed({id: name}); @@ -409,6 +432,7 @@ var DockerUtil = { if (fs.existsSync(volumePath)) { rimraf(volumePath, () => {}); } + this.refresh(); }); }); }); @@ -515,7 +539,7 @@ var DockerUtil = { let data = JSON.parse(json); if (data.status === 'pull' || data.status === 'untag' || data.status === 'delete' || data.status === 'attach') { - this.fetchAllImages(); + this.refresh(); } if (data.status === 'destroy') { @@ -655,6 +679,10 @@ var DockerUtil = { callback(error); }); }); + }, + + refresh () { + this.fetchAllContainers(); } }; diff --git a/styles/new-container.less b/styles/new-container.less index 1a08ce9807..8885123910 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -167,6 +167,7 @@ .results-userimages { border-left: 1px solid @gray-lighter; padding-left: 1.2rem; + padding-right: 1.2rem; } } }