[new] Support docker

This commit is contained in:
Wu Han 2020-12-20 21:29:22 +00:00
parent b08090795b
commit c95135bb19
6 changed files with 50 additions and 5 deletions

2
.dockerignore Normal file
View File

@ -0,0 +1,2 @@
node_modules/
leaderboard.json

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
node_modules/
leaderboard.json
leaderboard.json
uploads/

14
Dockerfile Normal file
View File

@ -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" ]

1
README.md Normal file
View File

@ -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

View File

@ -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

View File

@ -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