私はwebpack-dev-server
Dockerコンテナー内でNestjsアプリケーションを実行するために使用しています。すべてが稼働していますが、VS Codeインスタンスからアプリケーションをデバッグできません。私はこの設定を使用して9229ポートを公開しようとしていますwebpack.config.js
:
devServer: {
host: '0.0.0.0',
port: 9229,
},
netstat -l
コンテナー内で実行すると、ノードが9229ポートをリッスンしていないことがわかります。
Dockerfileおよびdocker-composeファイルでポート9229を公開しています。Dockerfile:
FROM node:12.16.1-alpine
WORKDIR /usr/src/app
COPY package.json yarn.lock ./
RUN yarn
COPY . .
EXPOSE 3000
EXPOSE 9229
CMD [ "yarn", "run", "start:debug"]
そしてdocker-compose.ymlファイル:
version: '3.7'
services:
open-tuna-api:
image: opentunaapi
ports:
- 3000:3000
- 9229:9229
volumes:
- ./dist:/usr/src/app/dist
- ./:/usr/src/app
networks:
- open-tuna-network
expose:
- 9229
networks:
open-tuna-network:
そして、これは私がアプリケーションを実行するために使用しているスクリプトです:
"start:debug": "webpack --config webpack.config.js && node --inspect=0.0.0.0:9229 node_modules/webpack-dev-server/bin/webpack-dev-server.js",
私の起動構成は次のとおりです:
{
"name": "Attach",
"preLaunchTask": "compose-up",
"stopOnEntry": true,
"type": "node",
"request": "attach",
"port": 9229,
"cwd": "${workspaceFolder}", // the root where everything is based on
"localRoot": "${workspaceFolder}", // root of all server files
"remoteRoot": "/usr/src/app", // workspace path which was set in the dockerfile
"outFiles": ["${workspaceFolder}/dist/**/*.js"], // all compiled JavaScript files
"protocol": "inspector",
"restart": true,
"sourceMaps": true,
"trace": "verbose",
"address": "0.0.0.0",
"skipFiles": [
"<node_internals>/**"
],
}
コンテナーを起動してこの構成を実行すると、VS Codeがプロセスに接続できないというメッセージが表示されます。
だから、私の質問は:webpack-dev-server
Dockerコンテナー内で実行されているJavaScript / TypeScriptアプリをデバッグする方法はありますか?私の環境の何が問題になっていますか?
助けてくれてありがとう。
編集
どうやら私の問題はDockerとは関係ありません。コンテナの外で再現できるからです。
ports
。:9229にバインドしようとすると、ノードのインスペクタサーバーまたはwebpack開発サーバーのいずれかが失敗するため、起動に失敗する可能性があります。両方が同じポートにバインドしようとするためです。
localhost
してみ127.0.0.1
ました。また、9229
ポートを9000
すべてのファイルに変更しましたが、問題は解決しません。
webpack-dev-server
自身をデバッグしようとしているように見え、すでにバンドルを構築した後、開発サーバーはwebpack --config webpack.config.js
呼び出しを回避することを意図しています。サーバーのエントリファイルは何ですか?
docker-compose ps
のショーopen-tuna-api
た9229:9229
ポートにバインドされますか?vscodeの設定でアドレスをlocalhost
またはに変更してみてください127.0.0.1
。