Skaffoldで起動したSpring BootをIntelliJ IDEAでデバッグする方法を調べてみました。1
デバッグモードでアプリケーションをデプロイする
skaffold debug
コマンドを使用して、アプリケーションをデプロイします。
debugコマンドを使ってデプロイすることで、ドキュメントに記載があるようにリモートでのデバッグが可能となります。
Javaのアプリケーションについては、ドキュメントに記載があるようにJDWPエージェントが有効化されるようです。
SkaffoldのConfigファイルをデフォルトのSkaffold.yml
で作っている場合には、以下のコマンドを実行するだけとなります。
skaffold debug --port-forward
IntelliJ IDEAへデバッグ設定を追加
下の画像のように、実行構成からRemote JVM Debug
を追加します。
デフォルトの設定で、skaffold debug
コマンドで有効化されたJDWPエージェントに接続されるので実行構成は特に変更しなくても問題ありません。
リモートデバッグをしてみる
下の動画のようにSkaffoldでデプロイしたアプリケーションに対してIntelliJ IDEAからリモートデバッグが可能となります。
注意点
skaffold dev
コマンドと異なり、ファイルの変更監視や変更を検知しての自動デプロイはデフォルトでは無効化されています。
devコマンドと同じように、デバッグ中に変更検知と自動デプロイを使いたい場合には、下のようにauto系のオプションを追加してdebugコマンドを実行ます。
ただし、自動デプロイが行われるリモートデバッグの接続が切れるため、再度デバッグしたい場合にはRemote JVM Debug`を再実行する必要があります。
skaffold debug --port-forward --auto-build --auto-deploy --auto-sync
おわり。