Docker运行nodejs及调试
2019-08-05 本文已影响0人
wildfox_9913
一.添加Dockerfile文件
首先在项目根目录下添加Dockerfile文件(这里我选用的是简单地nestjs作为例子)
FROM node:8.10.0
# set working directory
# move to app folder
WORKDIR /nest
# add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /nest/node_modules/.bin:$PATH
EXPOSE 3000
二.添加docker-compose.yml
在项目根目录下添加docker-compose.yml
version: '3'
services:
nest:
build: .
volumes:
- .:/nest
ports:
- 3000:3000
- 9229:9229 # 把docker中nodejs调试端口映射到本地调试端口
tty: true
command: yarn debug
三.添加nodemon配置
在项目根目录下添加nodemon-docker-debug.json
{
"watch": [
"src"
],
"ext": "ts",
"ignore": [
"src/**/*.spec.ts"
],
"exec": "tsc && node --inspect=0.0.0.0:9229 ./dist/src/main.js"
}
四.添加运行script
在package.json中加入docker运行命定及nodejs debug命定
"docker": "docker-compose build && docker-compose up -d",
"debug": "nodemon -L --config nodemon-docker-debug.json",
五. 构建docker
1.首先运行yarn docker(npm run docker)来构建及运行docker 容器
2.当执行完后,可以使用docker logs -f [containerId] 来查件日志, 看看是否运行成功
Screen Shot 2019-05-22 at 11.58.32 PM.png
3.在浏览器中输入http://localhost:3000 可以看到请求成功, 说明项目已经成功在docker中运行
五. 配置vscode debug(以vscode为例)
1.项目根目录下新建.vscode文件夹,在.vscode文件夹下添加launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Docker: Attach to Node",
"type": "node",
"request": "attach",
"port": 9229,
"address": "localhost",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/nest",
"protocol": "inspector",
"restart": true
}
]
}
*注意这里的port一定要与你docker-compose.yml设置的debug port保持一致
六.开启调试
运行vscode调试工具,如果能够成功连接到docker中的程序,可以在container logs 中看到连接成功的log
Screen Shot 2019-05-23 at 12.09.20 AM.png
接下来尝试断点调试
Screen Shot 2019-05-23 at 12.11.13 AM.png
成功!!!