美文网首页网络配置
Docker运行nodejs及调试

Docker运行nodejs及调试

作者: wildfox_9913 | 来源:发表于2019-08-05 22:35 被阅读0次

    一.添加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 容器

    Screen Shot 2019-05-22 at 11.53.04 PM.png
    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
    成功!!!

    原文链接http://watsonzuo.com/2019/05/22/docker-nodejs-debug/

    相关文章

      网友评论

        本文标题:Docker运行nodejs及调试

        本文链接:https://www.haomeiwen.com/subject/vspblctx.html