From 5c3cf7e83de34f428893994bbf7a5cbd08106839 Mon Sep 17 00:00:00 2001 From: Wu Han Date: Sat, 19 Dec 2020 18:45:01 +0000 Subject: [PATCH] [new] Implement docker create --- server.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/server.js b/server.js index 6d81300..e992efd 100644 --- a/server.js +++ b/server.js @@ -1,3 +1,4 @@ +const fs = require('fs'); var express = require('express'); var app = express(); var router = express.Router(); @@ -17,22 +18,28 @@ var io = require('socket.io')(http); var docker_build = (socket, sessionID) => { console.log('[server][start]', sessionID); socket.emit('start') - + path = process.cwd() + fs.mkdir(path + '/output/' + sessionID.toString(), () => { + socket.emit('update', 'Output directort created.') + }) docker.container.create({ Image: 'python:3.8', - name: sessionID, - Cmd: [ '/bin/bash', '-c', 'ls /output' ], - Volumes: { - "/output": `./uploads / {sessionID}` - }, + Cmd: [ '/bin/bash', '-c', 'cd /tsp && pip install -r requirements.txt && python main.py data/simple/ulysses16.tsp && cp output/* /output' ], + HostConfig: { + Binds: [ + path.toString() + '/com2014-template:/tsp', + path.toString() + "/output/" + sessionID.toString() + "/output" + ] + } }) + .then(container => container.start()) .then(container => container.logs({ follow: true, stdout: true, stderr: true })) .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)) }) .catch(error => console.log(error));