[new] Support docker
This commit is contained in:
parent
b08090795b
commit
c95135bb19
|
|
@ -0,0 +1,2 @@
|
|||
node_modules/
|
||||
leaderboard.json
|
||||
|
|
@ -1,2 +1,3 @@
|
|||
node_modules/
|
||||
leaderboard.json
|
||||
leaderboard.json
|
||||
uploads/
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
FROM node:lts-alpine3.12
|
||||
ENV NODE_ENV=production
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY ["package.json", "package-lock.json*", "./"]
|
||||
|
||||
RUN npm install --production
|
||||
|
||||
COPY . .
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
CMD [ "node", "server.js" ]
|
||||
|
|
@ -0,0 +1 @@
|
|||
docker container run -d -p 80:8080 -v /var/run/docker.sock:/var/run/docker.sock -v /uploads/:/app/uploads/ -v /output/:/app/output/ com2014-server
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
version: '3'
|
||||
services:
|
||||
com2014:
|
||||
image: com2014-server
|
||||
networks:
|
||||
- traefik-public
|
||||
deploy:
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.com2014.rule=Host(`com2014.trustai.uk`)"
|
||||
- "traefik.http.routers.com2014.entrypoints=web"
|
||||
- "traefik.http.services.com2014.loadbalancer.server.port=80"
|
||||
# TLS
|
||||
- "traefik.http.routers.com2014s.rule=Host(`com2014.trustai.uk`)"
|
||||
- "traefik.http.routers.com2014s.entrypoints=websecure"
|
||||
- "traefik.http.routers.com2014s.tls.certresolver=myhttpchallenge"
|
||||
# Redirect
|
||||
- "traefik.http.routers.com2014.middlewares=https_redirect"
|
||||
- "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == worker
|
||||
networks:
|
||||
traefik-public:
|
||||
external: true
|
||||
10
server.js
10
server.js
|
|
@ -185,8 +185,9 @@ var docker_build = (socket, sessionID) => {
|
|||
Image: 'com2014-tsp',
|
||||
HostConfig: {
|
||||
Binds: [
|
||||
current_path.toString() + '/uploads/' + sessionID.toString() + '/requirements.txt:/tsp/requirements.txt',
|
||||
current_path.toString() + "/output/" + sessionID.toString() + ":/output"
|
||||
'/uploads/' + sessionID.toString() + '/requirements.txt:/tsp/requirements.txt',
|
||||
'/uploads/' + sessionID.toString() + '/my_model.py:/tsp/model/my_model.py',
|
||||
"/output/" + sessionID.toString() + "/:/output/"
|
||||
]
|
||||
}
|
||||
})
|
||||
|
|
@ -212,7 +213,8 @@ var docker_build = (socket, sessionID) => {
|
|||
Image: 'com2014-tsp',
|
||||
HostConfig: {
|
||||
Binds: [
|
||||
current_path.toString() + "/output/" + sessionID.toString() + ":/output"
|
||||
'/uploads/' + sessionID.toString() + '/my_model.py:/tsp/model/my_model.py',
|
||||
"/output/" + sessionID.toString() + "/:/output/"
|
||||
]
|
||||
}
|
||||
})
|
||||
|
|
@ -308,7 +310,7 @@ io.on('connection', (socket) => {
|
|||
require('./app/routers/file.router.js')(app, router, upload)
|
||||
|
||||
// Create a Server
|
||||
var server = http.listen(8081, () => {
|
||||
var server = http.listen(8080, () => {
|
||||
|
||||
var host = server.address().address
|
||||
var port = server.address().port
|
||||
|
|
|
|||
Loading…
Reference in New Issue