diff --git a/src/services.js b/src/services.js index 3a12daf79..28082f98c 100644 --- a/src/services.js +++ b/src/services.js @@ -170,11 +170,11 @@ const ADDONS = { clear: NOOP, }, docker: { - setup: NOOP, - teardown: NOOP, + setup: setupDocker, + teardown: teardownDocker, backup: NOOP, restore: NOOP, - getDynamicEnvironment: getDynamicEnvironmentDocker, + getDynamicEnvironment: setupDocker, // can be removed in later release clear: NOOP, }, tls: { @@ -823,8 +823,8 @@ async function getEnvironment(app) { let env = {}; result.forEach(e => { env[e.name] = e.value; }); - // get dynamic environment configs overwriting static ones - for (let addon in app.manifest.addons) { + // get environment configs which are dynamic e.g generated based on dashboard domain and are not stored in db + for (let addon in (app.manifest.addons || {})) { const configs = await ADDONS[addon].getDynamicEnvironment(app, {}); if (configs) env = { ...env, ...configs }; } @@ -1715,6 +1715,23 @@ async function teardownProxyAuth(app, options) { await addonConfigs.unset(app.id, 'proxyauth'); } +async function setupDocker(app, options) { + assert.strictEqual(typeof app, 'object'); + assert.strictEqual(typeof options, 'object'); + + debug('Setting up docker'); + + const env = [ { name: 'CLOUDRON_DOCKER_HOST', value: `tcp://172.18.0.1:${constants.DOCKER_PROXY_PORT}` } ]; + await addonConfigs.set(app.id, 'docker', env); +} + +async function teardownDocker(app, options) { + assert.strictEqual(typeof app, 'object'); + assert.strictEqual(typeof options, 'object'); + + await addonConfigs.unset(app.id, 'docker'); +} + async function startRedis(existingInfra) { assert.strictEqual(typeof existingInfra, 'object'); @@ -1865,13 +1882,6 @@ async function restoreRedis(app, options) { await pipeFileToRequest(dumpPath('redis', app.id), `http://${result.ip}:3000/restore?access_token=${result.token}`); } -async function getDynamicEnvironmentDocker(app, options) { - assert.strictEqual(typeof app, 'object'); - assert.strictEqual(typeof options, 'object'); - - return { CLOUDRON_DOCKER_HOST: `tcp://172.18.0.1:${constants.DOCKER_PROXY_PORT}` }; -} - async function setupTls(app, options) { assert.strictEqual(typeof app, 'object'); assert.strictEqual(typeof options, 'object');