[new] Implement docker create
This commit is contained in:
parent
bbfd156a37
commit
5c3cf7e83d
21
server.js
21
server.js
|
|
@ -1,3 +1,4 @@
|
||||||
|
const fs = require('fs');
|
||||||
var express = require('express');
|
var express = require('express');
|
||||||
var app = express();
|
var app = express();
|
||||||
var router = express.Router();
|
var router = express.Router();
|
||||||
|
|
@ -17,22 +18,28 @@ var io = require('socket.io')(http);
|
||||||
var docker_build = (socket, sessionID) => {
|
var docker_build = (socket, sessionID) => {
|
||||||
console.log('[server][start]', sessionID);
|
console.log('[server][start]', sessionID);
|
||||||
socket.emit('start')
|
socket.emit('start')
|
||||||
|
path = process.cwd()
|
||||||
|
fs.mkdir(path + '/output/' + sessionID.toString(), () => {
|
||||||
|
socket.emit('update', 'Output directort created.')
|
||||||
|
})
|
||||||
docker.container.create({
|
docker.container.create({
|
||||||
Image: 'python:3.8',
|
Image: 'python:3.8',
|
||||||
name: sessionID,
|
Cmd: [ '/bin/bash', '-c', 'cd /tsp && pip install -r requirements.txt && python main.py data/simple/ulysses16.tsp && cp output/* /output' ],
|
||||||
Cmd: [ '/bin/bash', '-c', 'ls /output' ],
|
HostConfig: {
|
||||||
Volumes: {
|
Binds: [
|
||||||
"/output": `./uploads / {sessionID}`
|
path.toString() + '/com2014-template:/tsp',
|
||||||
},
|
path.toString() + "/output/" + sessionID.toString() + "/output"
|
||||||
|
]
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
.then(container => container.start())
|
||||||
.then(container => container.logs({
|
.then(container => container.logs({
|
||||||
follow: true,
|
follow: true,
|
||||||
stdout: true,
|
stdout: true,
|
||||||
stderr: true
|
stderr: true
|
||||||
}))
|
}))
|
||||||
.then(stream => {
|
.then(stream => {
|
||||||
stream.on('data', info => console.log(info))
|
stream.on('data', info => socket.emit('update', new Buffer.from(info).toString('ascii')))
|
||||||
stream.on('error', err => console.log(err))
|
stream.on('error', err => console.log(err))
|
||||||
})
|
})
|
||||||
.catch(error => console.log(error));
|
.catch(error => console.log(error));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue