golang
IntelliJ

Dockerの中のGolangプログラムをIntelliJでデバッグする

  • Dockerコンテナ(イメージ)にdelveをインストールしておく
  • IntelliJでGo RemoteのRun configurationを作る。ここでデバッガの通信に使うportを設定する(ここではデフォルトの2345だとする)
  • 以下のオプションでコンテナを立ち上げる
    • -p 2345:2345
    • --security-opt seccomp=unconfinedオプションをつける
  • 対象のプログラムがhello.goだとして、↑のコンテナで以下のコマンドを実行する
    • dlv debug --headless --listen=:2345 --api-version=2 hello.go
  • IntelliJで作ったRun configurationをDebug実行する。

サンプルプロジェクト作った。↓をcloneしてdocker-compose upしてIntelliJのGo Remoteのデフォルト設定を実行したらデバッグできる。