3.4.9. odo でのアプリケーションのデバッグ

odo を使用すると、デバッガーを割り当て、アプリケーションをリモートでデバッグできます。この機能は NodeJS および Java コンポーネントでのみサポートされます。

odo で作成されたコンポーネントは、デフォルトでデバッグモードで実行されます。デバッガーのエージェントは、特定のポートでコンポーネントに対して実行されます。アプリケーションのデバッグを開始するには、ポート転送を開始して、統合開発環境 (IDE) にバンドルされたローカルのデバッガーを割り当てる必要があります。

3.4.9.1. アプリケーションのデバッグ

odo debug コマンドを使用して、odo でアプリケーションをデバッグできます。

手順

  1. devfile で必要な debugrun ステップを含むサンプルアプリケーションをダウンロードします。

    $ odo create 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 deployed

  2. --debug フラグを使用してアプリケーションをプッシュします。これは、すべてのデバッグデプロイメントに必要です。

    $ 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 component

    注記

    --debug-command="custom-step" フラグを使用してカスタムデバッグコマンドを指定できます。

  3. デバッグインターフェースにアクセスするためのローカルポートへのポート転送

    $ odo debug port-forward

    出力例

    Started port forwarding at ports - 5858:5858

    注記

    --local-port フラグを使用してポートを指定できます。

  4. デバッグセッションが別のターミナルウィンドウで実行されていることを確認します。

    $ odo debug info

    出力例

    Debug is running for the component on the local port : 5858

  5. 選択する IDE にバンドルされるデバッガーを割り当てます。手順は IDE によって異なります (例: VSCode デバッグインターフェース)。