node.js - 在 dockerized Node 应用程序中设置 chrome 调试器返回 `WebSockets request was expected`

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

我在 Docker 化 Node 应用程序中设置 chrome 调试器时遇到问题。

我尝试过关注 https://github.com/nodejs/node/issues/11591没有成功。

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

有人可以帮忙吗?谢谢!

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

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);

最佳答案

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

关于node.js - 在 dockerized Node 应用程序中设置 chrome 调试器返回 `WebSockets request was expected`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50935860/

相关文章:

docker - 如何定义/使用端点从 Javascript 连接到 Kubernetes

bash - Dockerfile不会替换文本,但是命令行会替换文本,可能是错误?

database - 如何使 Docker Compose 服务构建依赖于另一项服务?

c# - 无法从 IdentityServer4 获取配置

azure - 在 Azure AKS 中运行 Docker Windows 容器时获取 'didn' t 匹配节点选择器

mysql - Docker mysql 5.7 无法在 OSX 上启动

node.js - Mongoose 更新不会立即回电

javascript - 当我只知道父类的名字时与类一起工作

javascript - 在 Node.js 中暴露和组合错误的最佳方式是什么?

javascript - 异步库中的 async.map 和 bluebird 中的 Promise.map 有什么区别?