This repository has been archived on 2025-12-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
qmi-cloud/server/workers/docker/azure.js
2020-03-26 11:29:05 +01:00

43 lines
1.6 KiB
JavaScript

const Docker = require('dockerode');
const docker = new Docker({
'socketPath': '/home/docker.sock'
//'socketPath': '/var/run/docker.sock'
});
const fs = require("fs");
const DOCKERIMAGE = "mcr.microsoft.com/azure-powershell";
//const cmd = `docker run --net=host -w /myapp -v ${FOLDER}:/myapp mcr.microsoft.com/azure-powershell pwsh appgw.ps1 -ApplicationGatewayName ${appGwName}`;
const appgateway = function( mongoJob ) {
if ( mongoJob.scenario === 'azqmi-qs-sn' || mongoJob.scenario === 'azqmi-qdc-qs') {
var provision_id = mongoJob._id.toString();
var processStream = fs.createWriteStream(mongoJob.logFile, {flags:'a'});
var name = 'qmi-azureps-appgw-'+provision_id;
console.log(`AzurePS: will spin up container: ${name}`);
return docker.run(DOCKERIMAGE, ['pwsh', 'appgw.ps1', "-ProvisionId", provision_id ], processStream, {
"name": name,
"WorkingDir": "/myapp",
"HostConfig": {
"Binds": [
`${mongoJob.path}/shell:/myapp`
],
"NetworkMode": "host"
}
}).then(function(data) {
var output = data[0];
var container = data[1];
console.log(`AzurePS: ${name} (${container.id}) has finished with code: ${output.StatusCode}`);
return container.remove();
}).then(function() {
console.log(`AzurePS: ${name} removed!`);
return Promise.resolve(mongoJob);
});
} else {
return Promise.resolve(mongoJob);
}
};
module.exports.appgateway = appgateway;