🎃

Ruby on Rails の開発で IntelliJ に Docker の ruby remote interpreter を認識させる

2024/12/02に公開

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 を選択します。

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 に修正しました。

Project Path Mappings

これで OK → Project Structure の画面でも OK して設定完了です。

なんでハマってたんですか

エディタに「ruby interpreterが設定されてないよ」と warning が出て、 configure をクリックすると以下の「Project」の画面になるため、赤字になっている SDK に ruby をいっしょうけんめい設定していたのでした...... (ここで ruby を指定しても ruby interpreter は設定されない)

Discussion