docker addon: env var can be stored in the db
This commit is contained in:
+22
-12
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user