Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js WebStorm 2018.1:我无法从docker容器中点击运行远程调试typescript的断点_Node.js_Typescript_Docker_Webstorm - Fatal编程技术网

Node.js WebStorm 2018.1:我无法从docker容器中点击运行远程调试typescript的断点

Node.js WebStorm 2018.1:我无法从docker容器中点击运行远程调试typescript的断点,node.js,typescript,docker,webstorm,Node.js,Typescript,Docker,Webstorm,我正在使用docker集成工具运行docker compose来启动两个容器,一个用于node,一个用于mongodb 以下是docker-compose.yml文件: version: '2.1' services: mongo: container_name: "app_mongo" hostname: "mongo" tty: true image: mongo:latest environment: - MONGO_DATA_DIR=

我正在使用docker集成工具运行docker compose来启动两个容器,一个用于node,一个用于mongodb

以下是docker-compose.yml文件:

version: '2.1'
services:
 mongo:
    container_name: "app_mongo"
    hostname: "mongo"
    tty: true
    image: mongo:latest
    environment:
      - MONGO_DATA_DIR=/data/db
      - MONGO_LOG_DIR=/dev/null
      - MONGO_INITDB_DATABASE=***********
      - MONGO_INITDB_ROOT_USERNAME=************
      - MONGO_INITDB_ROOT_PASSWORD=********************
    volumes:
      - /data/db:/data/db
    ports:
      - 27017:27017
    command: "mongod --smallfiles --auth"
    networks:
      - my-app-network
 group:
     container_name: "app_api1"
     hostname: "api1"
     build:
       context: .
       dockerfile: api1.dev.yml
     entrypoint: ["npm", "run", "debug"]
     volumes:
       - ".:/home/app"
     ports:
       - 3000:3000
       - 56745:56745
     depends_on:
       - "mongo"
     networks:
       - my-app-network
networks:
    my-app-network:
       driver: bridge
FROM node:latest

ADD package.json /tmp/package.json
RUN cd /tmp && npm install --production && npm install -g nodemon
RUN mkdir -p /home/app && cp -a /tmp/node_modules /home/app/ && mkdir -p /home/app/dist

ADD package.json /home/app/package.json
ADD .env /home/app/.env
WORKDIR /home/app
以下是api1.dev.yml文件:

version: '2.1'
services:
 mongo:
    container_name: "app_mongo"
    hostname: "mongo"
    tty: true
    image: mongo:latest
    environment:
      - MONGO_DATA_DIR=/data/db
      - MONGO_LOG_DIR=/dev/null
      - MONGO_INITDB_DATABASE=***********
      - MONGO_INITDB_ROOT_USERNAME=************
      - MONGO_INITDB_ROOT_PASSWORD=********************
    volumes:
      - /data/db:/data/db
    ports:
      - 27017:27017
    command: "mongod --smallfiles --auth"
    networks:
      - my-app-network
 group:
     container_name: "app_api1"
     hostname: "api1"
     build:
       context: .
       dockerfile: api1.dev.yml
     entrypoint: ["npm", "run", "debug"]
     volumes:
       - ".:/home/app"
     ports:
       - 3000:3000
       - 56745:56745
     depends_on:
       - "mongo"
     networks:
       - my-app-network
networks:
    my-app-network:
       driver: bridge
FROM node:latest

ADD package.json /tmp/package.json
RUN cd /tmp && npm install --production && npm install -g nodemon
RUN mkdir -p /home/app && cp -a /tmp/node_modules /home/app/ && mkdir -p /home/app/dist

ADD package.json /home/app/package.json
ADD .env /home/app/.env
WORKDIR /home/app
以下是package.json中的脚本条目:

"scripts": {
  "debug": "nodemon --inspect=56745 --require ts-node/register app/app.ts"
  // "debug": "nodemon -L --inspect=56745 dist/myapp/app.js"
}
我还添加了一个新的“attachtonode.js/Chrome”项以附加到Node的调试端口

在节点启动并侦听之后,我运行docker compose文件,然后调试“Attach to Node.js/Chrome”项

当我试图命中.ts文件中的断点时,什么都没有发生。我看到端点被称为

调试docker的typescript应用程序涉及哪些步骤?我做错了什么


我在哪里可以找到一个很好的教程,介绍如何调试docker容器中托管的node.js应用程序的TypeScript?

最后我得到了答案。最后,我不得不将调试脚本从“debug”:“nodemon-L--inspect=56745 dist/myapp/app.js”更改为“nodemon-L--inspect=0.0.0.0:56745 dist/myapp/app.js”。

但是您可以从
chrome://inspect
?也许这不是webstorm的真正问题,你可能还需要在DockerFile中使用
EXPOSE
,我会以什么方式使用EXPOSE?有没有推荐的教程可以用来设置它?到目前为止,我不得不从几个不同的教程中学习。不幸的是,我不知道是否有下降教程,但您可以在docker文件参考中查找EXPOSE。EXPOSE 3000 56745将为外部连接打开这些端口,否则“端口”将不起任何作用。那就和我联系一下chrome://inspect,但请记住,您必须找到docker网络的IP地址。172点什么。只有在这项工作完成后,我才建议尝试webstorm连接