在dockerized节点应用程序中设置chrome调试器会返回“ WebSockets请求预期”

时间:2018-06-19 19:44:46

标签: node.js docker docker-compose remote-debugging chrome-remote-debugging

我在dockerized节点应用程序中设置chrome调试器时遇到问题。

我尝试遵循https://github.com/nodejs/node/issues/11591失败。

我的应用程序确实在PORT上运行,但是我的Chrome调试器在localhost:9229上始终显示WebSockets request was expected。我怀疑这与我的index.js在PORT上侦听有关,但我不确定。

有人可以帮忙吗?谢谢!

(我有一个.env文件,其中定义了DOCKER_WORKING_DIR和PORT。)

Dockerfile

FROM node:8
ENV DOCKER_WORKING_DIR="/usr/local/app"
WORKDIR ${DOCKER_WORKING_DIR}
COPY package.json .
COPY package-lock.json .
RUN npm install --quiet
COPY . .
CMD ["npm", "run", "start"]

docker-compose.yml

version: '2.2'
services:
  api:
  build:
    context: ../../.
    dockerfile: docker/images/app/Dockerfile
  command: npm run start-dev
  environment:
    PORT: ${PORT}
    DOCKER_WORKING_DIR: ${DOCKER_WORKING_DIR}
volumes:
  - ../../.:${DOCKER_WORKING_DIR}/
  - ${DOCKER_WORKING_DIR}/node_modules
ports:
  - "${PORT}:${PORT}"
  - 9229:9229

package.json

"scripts": {
  "start": "node index.js",
  "start-dev": "nodemon --watch ./src -x \"npm run start-debug\"",
  "start-debug": "node --inspect=0.0.0.0:9229 index.js",
},

index.js

const server = require('./src/server');
server.listen(process.env.PORT);

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。我使用了节点检查器Chrome扩展程序,然后一切正常https://chrome.google.com/webstore/detail/nodejs-v8-inspector-manag/gnhhdgbaldcilmgcpfddgdbkhjohddkj?hl=en