Ruby on Rails の開発で IntelliJ に Docker の ruby remote interpreter を認識させる
IntelliJ における ruby remote interpreter の設定については こちらの記事 などで解説されており、 公式サイトでも リモートインタープリターを追加する のページで解説されているのですが、それでも自分は3回くらいハマってしまったため自分用メモとして書き残します。
前提・注意
- docker 上で ruby on rails アプリケーションを動かす構成をしています
- IntelliJ version: IntelliJ IDEA 2024.2.5 (Ultimate Edition)
- IDEで開発したコードを Docker コンテナに反映する Docker の接続設定は、こちらの手続き で済ませています
- 再現実験をしていないので、その他の前提が含まれている可能性があります
設定方法
「⌘ + ;」などで Project Structure を開き、サイドバーから Project Settings → Modules を選択します。
自分の場合、モノレポに rails アプリケーションを追加したため、 rails アプリケーションルートや ruby を認識させる場所が変わってしまいましたが、すでに ruby remote interpreterは追加された状態になっています。
初回であれば以下のようにプラスボタンから「Remote Interpreter or Version Manager...」 で Docker or Docker Compose を選択し、コンテナ上の ruby の位置を特定させる必要があります。
ruby remote interpreter が追加されたら、プロジェクトパスのマッピングを編集します。
以下の画像の赤マルのフォルダアイコンをクリックし、 Edit Project Path Mappings を設定します。
ここで local path (=ホストマシンのソースコードのパス) , remote path (= Docker 上のアプリケーションパス) を設定します。
自分の場合、もともとruby remote interpreter が追加された状態でしたが、先述のように rails アプリケーションへのパスが変わったので、 local path をモノレポバージョンの path に修正しました。
これで OK → Project Structure の画面でも OK して設定完了です。
なんでハマってたんですか
エディタに「ruby interpreterが設定されてないよ」と warning が出て、 configure をクリックすると以下の「Project」の画面になるため、赤字になっている SDK に ruby をいっしょうけんめい設定していたのでした...... (ここで ruby を指定しても ruby interpreter は設定されない)
Discussion