decentralized-internet
Version:
An NPM library of programs to create decentralized web and distributed computing projects
45 lines (36 loc) • 1.07 kB
JavaScript
;
const fs = require('fs'),
path = require('path'),
url = require('url');
const crew = require('crew');
let instance;
const getDockWorker = function (callback) {
if (instance) {
return process.nextTick(() => {
callback(null, instance);
});
}
crew({
/* eslint-disable no-process-env */
host: url.parse(process.env.DOCKER_HOST).hostname,
port: url.parse(process.env.DOCKER_HOST).port,
keys: {
privateKey: fs.readFileSync(path.join(process.env.DOCKER_CERT_PATH, 'key.pem')),
certificate: fs.readFileSync(path.join(process.env.DOCKER_CERT_PATH, 'cert.pem')),
caCertificate: fs.readFileSync(path.join(process.env.DOCKER_CERT_PATH, 'ca.pem'))
}
/* eslint-enable no-process-env */
}, (errCrew, dockWorker) => {
if (errCrew) {
return callback(errCrew);
}
dockWorker.ping(errPing => {
if (errPing) {
return callback(errPing);
}
instance = dockWorker;
return callback(null, instance);
});
});
};
module.exports = getDockWorker;