He estado configurando un proyecto de Nodejs usando Docker por primera vez y tengo problemas para adjuntar un depurador a la aplicación.
Aquí están mis archivos acoplables:
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 gulpy el compuesto:
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: gulpla tarea gulp actualmente está lanzando nodemon así:
gulp.task('serve', ['bundle'], () => { stream = nodemon({ execMap: { js: 'node --debug=5858' }, script: 'build/server.bundle.js', verbose: true }) Esto parece funcionar todo bien, incluida una salida que dice: Debugger listening on 127.0.0.1:5858 Sin embargo, parece que no puedo conectarme. Estoy usando VScode y mi archivo de configuración de lanzamiento es el siguiente:
"name": "Attach", "type": "node", "request": "attach", "address": "127.0.0.1", "port": 5858, "localRoot": "${workspaceRoot}/graphql/", "remoteRoot": "/graphql/",Incluso si cambio el indicador --debug a --inspect para usar el nuevo protocolo, aún no puedo abrirlo en las herramientas de desarrollo de Chrome.
He visto algunos tutoriales y esos hacen más o menos lo que estoy haciendo aquí, pero ¿me estoy perdiendo algo aquí? También he visto algunas sugerencias en StackOverflow sobre la ejecución de un segundo contenedor con la inspección de nodos, pero prefiero no seguir ese camino, ya que trato de simplificar las cosas. De hecho, este tipo de configuración parece funcionar en esos tutoriales, entonces, ¿por qué no me funciona a mí?
¡Gracias por adelantado!
He verificado esta configuración varias veces y no puedo reproducir el problema
aquí está todo mi archivo .vscode/launch.json
{ // Use IntelliSense to learn about possible Node.js debug attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "attach", "name": "Attach to Docker container", "port": 5858, "address": "127.0.0.1", "localRoot": "${workspaceRoot}", "remoteRoot": "/var/app" } ] }lo único que se me ocurre es asegurarme de que está ejecutando el modo de depuración "Adjuntar" en VS Code.
de lo contrario, no tengo ni idea. Parece estar funcionando para mí.