Debugging using devfile
Debugging a component
Debugging your component involves port forwarding with the Kubernetes pod. Before you start, it is required that you have a kind: debug
step located within your devfile.yaml
.
The following devfile.yaml
contains a debug
step under the commands
key:
commands:
- id: install
exec:
component: runtime
commandLine: npm install
workingDir: /project
group:
kind: build
isDefault: true
- id: run
exec:
component: runtime
commandLine: npm start
workingDir: /project
group:
kind: run
isDefault: true
- id: debug
exec:
component: runtime
commandLine: npm run debug
workingDir: /project
group:
kind: debug
isDefault: true
Debugging your devfile component via CLI
We will use the official nodejs example in our debugging session which includes the necessary debug
step within devfile.yaml
.
Download the example application:
odo create nodejs --starter nodejs-starter
For example:
$ odo create nodejs --starter nodejs-starter
Validation
✓ Checking devfile existence [11498ns]
✓ Checking devfile compatibility [15714ns]
✓ Creating a devfile component from registry: DefaultDevfileRegistry [17565ns]
✓ Validating devfile component [113876ns]
Starter Project
✓ Downloading starter project nodejs-starter from https://github.com/odo-devfiles/nodejs-ex.git [428ms]
Please use `odo push` command to create the component with source deployedPush with the
--debug
flag which is required for all debugging deployments:odo push --debug
For example:
$ odo push --debug
Validation
✓ Validating the devfile [29916ns]
Creating Kubernetes resources for component nodejs
✓ Waiting for component to start [38ms]
Applying URL changes
✓ URLs are synced with the cluster, no changes are required.
Syncing to component nodejs
✓ Checking file changes for pushing [1ms]
✓ Syncing files to the component [778ms]
Executing devfile commands for component nodejs
✓ Executing install command "npm install" [2s]
✓ Executing debug command "npm run debug" [1s]
Pushing devfile component nodejs
✓ Changes successfully pushed to componentNOTE: A custom debug command may be chosen via the
--debug-command="custom-step"
flag.Port forward to the local port in order to access the debugging interface:
odo debug port-forward
For example:
$ odo debug port-forward
Started port forwarding at ports - 5858:5858NOTE: A specific port may be specified using the
--local-port
flagOpen a separate terminal window and check if the debug session is running.
odo debug info
For example:
$ odo debug info
Debug is running for the component on the local port : 5858Accessing the debugger: The debugger is accessible through an assortment of tools. An example of setting up a debug interface would be through VSCode's debugging interface.
{
"type": "node",
"request": "attach",
"name": "Attach to remote",
"address": "TCP/IP address of process to be debugged",
"port": 5858
}