0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コンテナ環境でのJVMアプリケーションのリモートデバッグ方法

Posted at

はじめに

この記事ではDockerなどのコンテナ環境で実行されているJVMベースのアプリケーション(Java, Kotlin, Scalaなど)をデバッグする方法について解説します。

前提条件

  • Docker/Docker Composeがインストールされていること
  • Java対応IDE(IntelliJ IDEA, Eclipse, VS Codeなど)がインストールされていること
  • JVMベースの言語(Java, Kotlin, Scala等)で作成されたプロジェクトが存在すること

デバッグ環境の設定方法

1. Docker環境の準備

docker-compose.ymlの設定

デバッグを可能にするには、JVMのデバッグポートを公開し、デバッグオプションを環境変数として設定する必要があります。

version: '3'
services:
  app:
    build: .
    ports:
      - "8080:8080"      # アプリケーションポート
      - "5005:5005"      # デバッグポート
    environment:
      - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

2. IDEの設定

IntelliJ IDEAの場合

  1. メニューから「実行」→「実行構成の編集」を選択
  2. 「+」ボタンをクリックし、「リモートJVMデバッグ」を選択
  3. 以下の項目を設定:
    • 名前: 任意のデバッグ設定名(例:「Docker Debug」)
    • ホスト: localhost
    • ポート: 5005
    • 使用するモジュールのクラスパス: デバッグ対象のプロジェクトモジュール

VS Codeの場合

launch.jsonに以下の設定を追加:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "java",
      "name": "Docker Debug",
      "request": "attach",
      "hostName": "localhost",
      "port": 5005
    }
  ]
}

3. リモートデバッグの開始

上記で設定した実行構成でリモートデバッグを開始すると、デバッグが可能になります。

プロダクション環境では、デバッグポートを公開しないでください

まとめ

この記事では、Docker環境で実行されているJVMアプリケーションのデバッグ方法について説明しました。適切な設定を行うことで、通常の開発環境と同様にステップ実行やブレークポイントを利用したデバッグが可能になります。

この方法は、Java、Kotlin、Scalaなど、JVM上で動作する全ての言語に適用可能です。フレームワークの選択(Spring Boot、Micronaut、Quarkus、Play Frameworkなど)に関係なく、同じ方法でデバッグを行うことができます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?