Money Forward Developers Blog

株式会社マネーフォワード公式開発者向けブログです。技術や開発手法、イベント登壇などを発信します。サービスに関するご質問は、各サービス窓口までご連絡ください。

20230215130734

RubyMineでDocker Composeの複数のServiceを管理する

こんにちは、クラウド経費・クラウド債務支払でバックエンドエンジニアをしている@いいねです。

Docker Composeを使ってRailsの開発環境を準備することはよくあると思いますが、以下のように、docker-compose.ymlで複数のRailsアプリを管理したいことがあります。

docker-compose.yml

version: '3.8'

services:
  web:
    image: my-web-app:latest
    ports:
      - "80:80"
    command: bundle exec rails s -p 80 -b '0.0.0.0'
  api:
    image: my-api-server:latest
    ports:
      - "3000:3000"
    command: bundle exec rails s -p 3000 -b '0.0.0.0'

RubyMineで開発を行う際に、このような複数のServiceに対応した実行設定を作成することができます。

解説

1. RubyMineにServiceごとのRemote Interpreterを作成する

参考: Ruby インタープリターを構成する | IntelliJ IDEA ドキュメント

Settings | Languages & Frameworks | Ruby SDK and Gemsを開き、+ボタンを押し、Remote Interpreter or Version Manager...を選択します。

Docker Composeを選択し、Serviceに応じた設定を入力してOKを押してRubyのRemote Interpreter設定を作成します。

同様の手順をもう一つのServiceでも行います。

それぞれのServiceに対応したRubyのRemote Interpreter設定を作成したら、Edit NameにてそれぞれのRemote Interpreterに分かりやすく名前をつけておきましょう。

2. RubyMineにServiceごとのRailsの実行設定を作成する

Run | Edit ConfigurationsよりRun/Debug Configrationsを開き、+ボタンを押し、Railsを選択します。

Ruby SDKに、Use other SDKを選択、1の手順で作成したRemote Interpreterを設定し、OKを押して実行設定を登録します。 IP addressとPortについてはdocker-compose.ymlで設定しているため、空で登録しています。

同様の手順をもう一つのRemote Interpreterでも行います。

3. 作成した実行設定を使ってRailsアプリを起動する

2で作成した実行設定を実行すると、1で選択したServiceを指定した状態でdocker compose upが行われます。

もう一つの実行設定で実行すると、そちらも選択したServiceを指定した状態でdocker compose upが行われます。

これでDocker Composeで複数のRailsのServiceを管理している場合でも、それぞれ実行設定を作成することができました🎉

おわりに

最近自分もはまってしまった部分だったため、備忘録も兼ねてこのように紹介させていただきました。 RubyMineで開発をしているエンジニアの助けになると幸いです。

宣伝

私の所属するマネーフォワード福岡開発拠点ではエンジニアを募集しています。

↓ 求人情報はこちら ↓

hrmos.co

福岡拠点のサイトもぜひご覧ください🐈

fukuoka.moneyforward.com