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

Posted

技术标签:

【中文标题】在 dockerized 节点应用程序中设置 chrome 调试器返回“预期 WebSockets 请求”【英文标题】:Setting up chrome debugger in dockerized node application returns `WebSockets request was expected` 【发布时间】:2018-11-28 20:34:54 【问题描述】:

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

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

我的应用程序确实在 PORT 上运行,但我的 chrome 调试器在 localhost:9229 上时总是显示 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);

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在 dockerized 节点应用程序中设置 chrome 调试器返回“预期 WebSockets 请求”的主要内容,如果未能解决你的问题,请参考以下文章

使用 Docker 和 PHP 从 env 文件加载环境变量

当在docker容器中设置php时,如何在vscode中设置php可执行路径php.validate.executablePath?

无法在 VS Code 中设置断点调试节点 Typescript

如何在 GCP 中设置与 MongoDB Docker 容器的连接

在代码中设置关系,在父子节点都插入核心数据之后?

如何使用 express 框架在节点 js 中设置 cookie?