38 lines
1.7 KiB
JavaScript
38 lines
1.7 KiB
JavaScript
console.warn("Starting image build");
|
|
const path = require("path")
|
|
const {exec, execSync} = require("child_process")
|
|
const ports_options = "-p 2222:22/tcp",
|
|
variasbles = `-e ADMIN_USERNAME="${process.env.USERNAME}" -e ADMIN_PASSWORD="${process.env.PASSWORLD}"`,
|
|
mounts = ``,
|
|
docker_options = ``,
|
|
// docker_options = `--privileged`,
|
|
docker_name = {
|
|
name: "http_injector",
|
|
docker: "test/http_injector:latest"
|
|
};
|
|
var docker_builder_c = `konsole -e docker build . -t ${docker_name.docker}`,
|
|
docker_run_c = `konsole -e "docker run -ti --rm ${docker_options} --name ${docker_name.name} ${ports_options} ${mounts} ${variasbles} ${docker_name.docker}"`
|
|
function output(data){
|
|
//if (data.slice(-1) == "\n") data = data.slice(0, -1)
|
|
console.log(data)
|
|
}
|
|
if (execSync("docker ps -a").toString().includes(docker_name.name)) execSync(`konsole -e docker stop -f ${docker_name.name};konsole -e docker rm -f ${docker_name.name}; read Null`).toString()
|
|
const build = exec(docker_builder_c)
|
|
console.warn(docker_builder_c)
|
|
build.stdout.on("data", function(data){output(data)})
|
|
build.on("exit", (code) => {
|
|
if (code === 0){
|
|
|
|
console.warn(docker_run_c);
|
|
const run = exec(docker_run_c)
|
|
run.stdout.on("data", function (data) {output(data)})
|
|
run.on("exit", function (code){
|
|
if (code !== 0){
|
|
if (execSync("docker ps -a").toString().includes(docker_name.name)) execSync(`konsole -e docker stop -f ${docker_name.name};konsole -e docker rm -f ${docker_name.name}; read Null`).toString()
|
|
}
|
|
})
|
|
} else {
|
|
console.error("We were unable to create the image of the docker, Run the following command in the terminal: "+docker_builder_c)
|
|
process.exit(code)
|
|
}
|
|
}) |