From 15aa4ecc5d9a264b3c200868d85b6abf2a44c992 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Mon, 19 Oct 2015 21:33:53 -0700 Subject: [PATCH] Add docker.createSubcontainer --- src/apptask.js | 2 +- src/docker.js | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/apptask.js b/src/apptask.js index 85bb57994..13c2454a7 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -138,7 +138,7 @@ function unconfigureNginx(app, callback) { function createContainer(app, callback) { assert(!app.containerId); // otherwise, it will trigger volumeFrom - docker.createContainer(app, null /* command */, function (error, container) { + docker.createContainer(app, function (error, container) { if (error) return callback(new Error('Error creating container: ' + error)); updateApp(app, { containerId: container.id }, callback); diff --git a/src/docker.js b/src/docker.js index a655a0562..9287e1bda 100644 --- a/src/docker.js +++ b/src/docker.js @@ -114,12 +114,12 @@ function downloadImage(manifest, callback) { }, callback); } -function createContainer(app, cmd, callback) { +function createSubcontainer(app, cmd, callback) { assert.strictEqual(typeof app, 'object'); assert(!cmd || util.isArray(cmd)); assert.strictEqual(typeof callback, 'function'); - var docker = exports.connection; + var docker = exports.connection, isSubcontainer = !!cmd; var manifest = app.manifest; var exposedPorts = {}, dockerPortBindings = { }; @@ -165,7 +165,8 @@ function createContainer(app, cmd, callback) { }, Labels: { "location": app.location, - "appId": app.id + "appId": app.id, + "isSubcontainer": String(isSubcontainer) }, HostConfig: { Binds: addons.getBindsSync(app, app.manifest.addons), @@ -182,7 +183,7 @@ function createContainer(app, cmd, callback) { CpuShares: 512, // relative to 1024 for system processes SecurityOpt: config.CLOUDRON ? [ "apparmor:docker-cloudron-app" ] : null // profile available only on cloudron }, - VolumesFrom: app.containerId ? [ app.containerId ] : null + VolumesFrom: isSubcontainer ? [ app.containerId ] : [] }; // older versions wanted a writable /var/log @@ -194,6 +195,10 @@ function createContainer(app, cmd, callback) { }); } +function createContainer(app, callback) { + createSubcontainer(app, null, callback); +} + function startContainer(containerId, callback) { assert.strictEqual(typeof containerId, 'string'); assert.strictEqual(typeof callback, 'function');