Debugging Docker containers

Sometimes, you have code running in a container that is not working. In that case, it's useful to be able to debug the application as it's running inside of the container. VS Code provides the correct Docker configuration to do this.

Exercise
Answer
Exercise
  • Build the container with the "debug.docker-compose.yml" file

  • Add a launch configuration for Docker

  • Attach the debugger to the running container

  • Set a breakpoint in the "routes/index.js" file

  • Visit the app in the browser, change the color and click the button

  • See the debugger break at the breakpoint

Answer
  • Open the Command Palette(Cmd/Ctrl + Shift + P)

  • Select "Docker: Compose Up"

  • Select the "start" project from the prompt

  • Select the "debug.docker-compose.yml" file from the prompt

  • Open the Debug Explorer view (Cmd/Ctrl + Shift + D)

  • Open the dropdown list at the top and select "Add Config (start)"

  • Select "Docker: Node.js" from the prompt

  • Take the default Docker Remote Route prompt

  • VS Code will add a ".vscode" folder to the "start" project. In that folder will be a file called "launch.config"

  • Open the Debug Explorer View

  • Make sure "Docker: Attach to Node" is selected and press the green arrow

  • VS Code attaches the debugger

  • Open the "routes/index.js" file in the "start" project

  • Add a breakpoint to line 12

  • View the app in the browser running on port 3000

  • Change the color and click the "Go" button

  • VS Code will break on line 12 of the "index.js" file inside of the Docker container