Tôi đang sử dụng webpack-dev-server
để chạy ứng dụng Nestjs bên trong container Docker. Tất cả đều hoạt động, nhưng tôi không thể gỡ lỗi ứng dụng từ ví dụ Mã VS của mình. Tôi đang cố gắng để lộ cổng 9229 bằng cấu hình này trên webpack.config.js
:
devServer: {
host: '0.0.0.0',
port: 9229,
},
Khi tôi chạy netstat -l
bên trong container, tôi có thể thấy nút đó không nghe cổng 9229:
Tôi đang hiển thị cổng 9229 trong các tệp Dockerfile và docker-compose. 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"]
Và tệp 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:
Và đây là tập lệnh tôi đang sử dụng để chạy ứng dụng:
"start:debug": "webpack --config webpack.config.js && node --inspect=0.0.0.0:9229 node_modules/webpack-dev-server/bin/webpack-dev-server.js",
Cấu hình khởi chạy của tôi như sau:
{
"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>/**"
],
}
Và khi tôi chạy cấu hình này với bộ chứa và chạy, tôi nhận được một thông báo nói rằng Mã VS không thể kết nối với quy trình.
Vì vậy, câu hỏi của tôi là: có cách nào để gỡ lỗi ứng dụng JavaScript / TypeScript đang chạy webpack-dev-server
bên trong một container Docker không? Điều gì là sai trong môi trường của tôi?
Cảm ơn đã giúp đỡ.
BIÊN TẬP
Rõ ràng vấn đề của tôi không liên quan đến Docker, vì tôi có thể tái tạo nó bên ngoài container.
ports
. Có thể không khởi động được vì máy chủ thanh tra của nút hoặc máy chủ phát triển webpack không thành công khi cố gắng liên kết với: 9229 - vì cả hai đều cố gắng liên kết với cùng một cổng.
localhost
và 127.0.0.1
trong cấu hình VS Code. Ngoài ra, tôi đã thay đổi 9229
cổng thành 9000
trên tất cả các tệp và vấn đề vẫn còn.
webpack-dev-server
tự gỡ lỗi và sau khi đã xây dựng gói, máy chủ dev có nghĩa là để tránh webpack --config webpack.config.js
cuộc gọi. tập tin nhập của máy chủ là gì?
docker-compose ps
cho thấy rằngopen-tuna-api
đã9229:9229
ràng buộc trong Cổng? Hãy thử thay đổi địa chỉ trong cấu hình của vscode thànhlocalhost
hoặc127.0.0.1
.