こんにちは、クラウド経費・クラウド債務支払でバックエンドエンジニアをしている@いいねです。
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で開発をしているエンジニアの助けになると幸いです。
宣伝
私の所属するマネーフォワード福岡開発拠点ではエンジニアを募集しています。
↓ 求人情報はこちら ↓
福岡拠点のサイトもぜひご覧ください🐈