3
我一直在第一次使用Docker設置Nodejs項目,並且在將調試器附加到應用程序時遇到問題。在Docker容器中調試nodejs應用程序
這裏是我的搬運工文件:
FROM node:latest
LABEL Name=graphql Version=0.1.0
# Create app directory
RUN mkdir -p /graphql
WORKDIR /graphql
# Install app dependencies
COPY package.json /graphql
RUN npm install -g gulp
RUN npm install
# Bundle app source
COPY . /graphql
EXPOSE 3000
EXPOSE 5858
EXPOSE 8000
CMD gulp
,並撰寫一個:
version: '2'
services:
graphql:
image: graphql:latest
container_name: apollo-graphql
build:
context: .
dockerfile: dockerfile
environment:
NODE_ENV: development
tty: true
ports:
- 3000:3000
- 5858:5858
- 8000:8000
volumes:
- .:/graphql
## set your startup file here
command: gulp
吞氣任務當前正在開展nodemon這樣的:
gulp.task('serve', ['bundle'],() => {
stream = nodemon({
execMap: {
js: 'node --debug=5858'
},
script: 'build/server.bundle.js',
verbose: true
})
這似乎運行一切很好,包括一個輸出:Debugger listening on 127.0.0.1:5858
但是我似乎無法連接到它。我使用VScode和我的啓動配置文件如下:
"name": "Attach",
"type": "node",
"request": "attach",
"address": "127.0.0.1",
"port": 5858,
"localRoot": "${workspaceRoot}/graphql/",
"remoteRoot": "/graphql/",
即使我改變--debug標誌--inspect使用新的協議,我仍然無法在Chrome devtools打開。
我見過一些教程和那些幾乎做我在做什麼,但我在這裏錯過了什麼嗎? 我也在StackOverflow上看到了關於使用節點檢查運行第二個容器的一些建議,但我寧願不去那條路線,因爲我試圖讓事情變得簡單。事實上,這種設置似乎在這些教程中起作用,那爲什麼它不適合我?
在此先感謝!
您是否設法解決了您的問題?如果你在docker-machine中運行Docker鏡像,一個潛在的問題是你應該指定不同的地址(你可以使用'docker-machine env'命令獲得它)。在我的情況下,它是192.168.99.100。但是,無論使用什麼協議,我都會觀察到最新'節點'映像的類似問題。有趣的是,在Windows中本地運行時可以調試相同的代碼。 – gerichhome