Docker.Config.js
JavaScript source for A Docker module for Node.js, 78 lines. Raw file
const Security = require('Security')
const Docker = {
Config: {
_networkName: 'cubelogix-internal',
_restarting: false,
_restartingLimit: 10,
_logPath: undefined,
_envVariables: [],
Environment: (name, value, cb) => {
Security.String(name)
Security.String(value)
Security.Callback(cb)
const prevEnvVariables = Docker.Config._envVariables;
try {
Docker.Config._envVariables = [...prevEnvVariables, {name, value}];
cb();
}
finally {
Docker.Config._envVariables = prevEnvVariables;
}
},
Network: (networkName, cb) => {
Security.String(networkName)
Security.Callback(cb)
const prevNetworkName = Docker.Config._networkName;
try {
Docker.Config._networkName = networkName;
Docker.Network.Create(networkName);
cb();
}
finally {
Docker.Config._networkName = prevNetworkName;
}
},
Restarting: (limit, cb) => {
Security.Integer(limit, 0)
Security.Callback(cb)
const prevRestartingLimit = Docker.Config._restartingLimit;
const prevRestarting = Docker.Config._restarting;
try {
Docker.Config._restartingLimit = limit;
Docker.Config._restarting = true;
cb();
}
finally {
Docker.Config._restartingLimit = prevRestartingLimit;
Docker.Config._restarting = prevRestarting;
}
},
LogPath: (logPath, cb) => {
Security.String(logPath)
Security.Callback(cb)
const prevLogPath = Docker.Config._logPath;
try {
Docker.Config._logPath = logPath;
cb();
}
finally {
Docker.Config._logPath = prevLogPath;
}
},
}
}
module.exports = Docker.Config