Redmine プラグインのデバッグ(のメモ

ちょっと Redmine プラグインのソースコードデバッグが出来ると便利と思い立って、環境構築について調査をしていました。昔 Redmine Ver2系列あたりを使っていたことを覚えていますが、今はもう 4.2 系列になってるし随分と進化してました…。

プラグインの作り方

プラグインを作る方法は、日本語での解説が色々と見つかりますが現時点ではそのまま写経して使えるものは見つかりませんでした。素直に公式のプラグイン作成チュートリアルを進めた方がスムーズに進むと思います。

https://www.redmine.org/projects/redmine/wiki/plugin_tutorial

Redmine のコンテナを改良する

Docker Hub で公開されている Redmine のコンテナイメージに手を加えて、デバッグに使えるものにしてみました。色々と苦戦した道のりでしたが、最終的には以下のようにソースコードレベルでのデバッギングが出来るようになりました。

コンテナに rdebug-ide を追加したり、起動スクリプトを変更することが必要でした。基本的な設定としては、以下のリンクを参考に行っています。

Redmine が提供している docker-entrypoint.sh が Ruby/Rails 関連のコマンドを実行したときに初期化処理をしているようで、そこが注意ポイントでした。とりあえずこれらを常に初期化するように変更して、 rdebug-ide コマンドによる起動方法に変更しています。

ブレークポイントで停止しない

コンテナの中ということで、ブレークポイントで停止しない!という課題にも出遭いました。一旦 Redmine 抜きの素の Rails アプリで試してみたりもしました。 原因だったのはファイルパスの認識ずれだったのですが、この調査をするきっかけとなった以下の Issue にはとても助けられました。

Redmine をこの方式で起動すると、デバッガを繋がないと動き出さないのですが、まぁそこは仕方ないのかなと思います。サーバースタートしている状態でデバッガを繋げられたらよかったんですけどね。

関連記事

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください