diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b2dd376 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,14 @@ +**/.dockerignore +**/.git +**/.gitattributes +**/.gitignore +**/.vscode +**/docker-compose* +**/compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/cracks +LICENSE +README.md \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index dcafbc1..ec5a4ba 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,18 +9,29 @@ "request": "launch", "name": "Launch", "program": "${workspaceFolder}/app.js", - "skipFiles": ["/**"] + "skipFiles": [ + "/**" + ] }, { "type": "node", "request": "launch", "name": "Nodemon", "program": "${workspaceFolder}/app.js", - "skipFiles": ["/**"], + "skipFiles": [ + "/**" + ], "runtimeExecutable": "nodemon", "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "restart": true + }, + { + "name": "Docker Node.js Launch", + "type": "docker", + "request": "launch", + "preLaunchTask": "docker-run: debug", + "platform": "node" } ] } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..d416da5 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,39 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "docker-build", + "label": "docker-build", + "platform": "node", + "dockerBuild": { + "dockerfile": "${workspaceFolder}/Dockerfile", + "context": "${workspaceFolder}", + "pull": true + } + }, + { + "type": "docker-run", + "label": "docker-run: release", + "dependsOn": [ + "docker-build" + ], + "platform": "node" + }, + { + "type": "docker-run", + "label": "docker-run: debug", + "dependsOn": [ + "docker-build" + ], + "dockerRun": { + "env": { + "DEBUG": "*", + "NODE_ENV": "development" + } + }, + "node": { + "enableDebugging": true + } + } + ] +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a326b15 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:latest +ENV NODE_ENV=production +WORKDIR /usr/src/app +COPY ["package.json", "package-lock.json*", "./"] +RUN npm install --production --silent && mv node_modules ../ +COPY . . +RUN chown -R node /usr/src/app +USER node +CMD ["npm", "start"]