RubyMine 2020.2 ヘルプ

チュートリアル : リモートインタープリターとしての Docker Compose

Docker は、コンテナー化されたアプリケーションを構築、共有、実行するためのツールです。RubyMine は Docker との統合を提供し、イメージの構築から実行中のコンテナー内でのコマンドの実行まで、プロジェクトで必要なすべてのアクションを実行できます。さらに、RubyMine を使用すると、実行中の Docker コンテナーをリモートインタープリターとして使用できます。つまり、IDE から直接、隔離された環境でアプリケーションを実行デバッグ、およびテストできます。

このチュートリアルでは、リモート Docker Compose インタープリターを使用(英語)してサンプル Rails アプリケーション(英語)をデバッグする方法を示します。このアプリケーションは、Web フロントエンドとデータベースバックエンドで構成されています。2 つの個別のサービスを使用して実行するようにアプリケーションを構成し、Web サービスにリモートインタープリターを割り当て、デバッグ機能を試します。

前提条件

このチュートリアルでは、Mac と macOS を使用し、RubyMine をインストールします。さらに、すべての手順を完了するには、以下の前提条件を満たす必要があります。

  • Docker がインストールされ実行されていることを確認してください。

  • Docker プラグインが有効になっていることを確認してください。

Compose でアプリケーションをビルドして実行する

この章では、アプリケーションを 2 つの別々のサービスで実行します。フロントエンドの Webデータベースの db です。これを行うには、database.yml ファイルのデータベース設定を再構成する必要があります。次に、docker-compose up を実行します。次の手順を実行します。

  1. config / database.yml ファイルに移動し、Ctrl+/ に次のコードをコメント化します。

    development: <<: *default adapter: sqlite3 database: db/development.sqlite3
  2. 開発環境用に Postgres データベースを使用して構成する部分の Ctrl+/ のコメントを外します。

    development: <<: *default adapter: postgresql encoding: unicode host: db username: postgres password: database: sample_rails_app_db
  3. docker-compose.yml ファイルを開きます。次のコマンドは、Web サービスを実行し続けるために使用されることに注意してください。

    web: # command: tail -f /dev/null

    RubyMine は docker-compose exec コマンドを使用して Ruby 環境を分析し、Docker Compose をリモートインタープリターとして追加するため、Web サービスを実行する必要があります。Web サービスが実行されていない場合、RubyMine は docker-compose run で自動的に実行します。必要に応じて、この動作を変更し、別の方法を使用して Ruby 環境を分析できます。

  4. ガターのdocker-compose upをクリックし、Docker Compose がイメージをプル / ビルドし、コンテナーを開始するまで待ちます。

    Docker tool window: Compose

    あるいは、RubyMine ターミナルdocker-compose up コマンドを実行することもできます。

リモートインタープリターとして Compose を設定する

Docker Compose をリモートインタープリターとして構成することは、次の 2 つの部分で構成されます。

リモートインタープリターを設定する

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S を開き、言語 & フレームワーク | Ruby SDK および Gem ページに移動します。

  2. the Add button をクリックし、新規リモート ... を選択します。

    New remote interpreter
  3. 呼び出されたダイアログで、Docker Compose を選択し、次のオプションを指定します。

    Configure remote Ruby interpreter: Docker Compose
    • サーバー - このオプションは、コンテナーを実行するために使用される Docker サーバーを指定します。

    • 構成ファイル - docker-compose.yml ファイルを残します。

    • サービス - Web サービスを選択します。

    • Ruby またはバージョンマネージャーのパス - デフォルトの ruby 値のままにして、Ruby インタープリターへのパスを自動的に検出します。インタープリターまたはバージョンマネージャーの実行可能ファイルへのパスを手動で指定することもできます。

  4. Ruby SDK および Gem ページで追加された SDK を選択して OK をクリックしてください。

    Ruby SDK and Gems: Docker Compose
  5. RubyMine がインデックス作成プロセスを終了し、ヘルパー Docker イメージとコンテナーを作成するまで待ちます。

    Docker tool window: Helpers

(オプション)Ruby Docker 統合を構成する

Docker 内で Ruby インタープリターを操作するために、IDE は、which ruby , gem envrbconfig などのコンテナー内で特定のコマンドを実行して、Ruby 環境を分析します。これらのコマンドをターゲットコンテナーで実行するか(docker-compose exec)、新しい環境を作成するか(docker-compose run)、またはこの目的のために専用のサービスコンテナーを使用するかどうかを選択できます。

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S を開き、言語 & フレームワーク | Ruby Docker 統合ページに移動します。

  2. コンテナー内で特定のコマンドを実行して、IDE が Ruby 環境を分析する方法を指定します。

    • プロジェクトが稼働中の場合は docker-compose exec、それ以外の場合は docker-compose run

    • docker-compose exec、必要に応じて docker-compose up でプロジェクトを実行

    • SDK コンテナー内の docker exec、必要に応じて SDK コンテナーを作成

    • docker-compose run

データベースを作成して移行を実行する

Rails アプリケーションをデバッグする前に、データベースを作成して移行を実行する必要があります。

  1. Ctrl を 2 回押して、db:作成と入力します。ドロップダウンで rake db:create を選択して Enter を押します。呼び出された 'db:create' を実行してください。ダイアログのデフォルト設定をそのままにして、OK をクリックします。

  2. 最後に、データベースを移行するには、Ctrl を 2 回押して db:migrate と入力し、ドロップダウンで rake db:migrate を選択して Enter を押します。呼び出されたダイアログで OK をクリックします。

アプリケーションの実行

デバッグの前にアプリケーションを実行して、動作を確認しましょう。

  1. ツールバーで開発構成を選択し、Run Shift+F10 をクリックします。

    Run selected configuration
  2. ブラウザーを開き、0.0.0.0:3000 アドレスを入力し、Enter を押して、動作しているアプリケーションを表示します。

    Rails application in a browser
  3. アプリケーションを停止するには、停止ボタンthe Stop buttonをクリックします。

デバッグをインストール gems

Docker Compose を使ってアプリケーションをデバッグするには、リモートインタープリターにデバッグ用 gems をインストールする必要があります。

  1. Gemfile を開き、次のコード行の Ctrl+/ のコメントを外します。

    gem 'debase' gem 'ruby-debug-ide'
  2. キャレットをこれらの gems のいずれかに置き、Alt+Enter を押します。ポップアップで、実行 'docker-compose build' を選択し、Enter を押し、RubyMine がこれらの gems をインストールするまで待ちます。

(オプション)実行 / デバッグ構成設定の作成

デバッグセッションを実行する前に、Docker Compose に関連するスタートアップ設定を調べましょう。

  1. Ctrl+Shift+A を押して、編集設定の入力を始めます。構成の編集を選択して Enter を押します。

    Find Action
  2. 呼び出された実行 / デバッグ構成ダイアログで、Rails ノードの開発設定を選択します。

    Run/Debug Configurations dialog

    docker-compose グループには、Rails アプリケーションを実行 / デバッグするための以下のオプションがあります。

    • docker-compose exec - RubyMine は既に実行中のコンテナーでコマンドを実行します。

    • docker-compose up - RubyMine は、追加設定でリモートインタープリターとして使用されるサービスを開始します(たとえば、デバッガーに必要な追加ポートを公開します)。

    • docker-compose run - RubyMine は、新しいコンテナーでコマンドを実行します。

    デフォルトの docker-compose up のままにして、OK をクリックします。

アプリケーションをデバッグする

これでアプリケーションをデバッグする準備が整いました。

  1. users_controller.rb ファイルを開き、create メソッド内で新しいユーザーが作成された行の横にブレークポイントを設定します。

    Set a breakpoint
  2. 開発実行 / デバッグ構成を選択し、Debug Shift+F9 をクリックしてデバッグを開始します。

    Debug selected configuration

    呼び出されたダイアログで、パッチプロジェクトの設定を選択します。

  3. ブラウザを開き、アプリケーションアドレス 0.0.0.0:3000 を指定します。

    Rails application in a browser
  4. 今すぐサインアップ ! ボタンをクリックします。サインアップページで、必要なユーザパラメーターを入力し、アカウントを作るをクリックします。

    Sign up page
  5. デバッガーはブレークポイントでセッションを一時停止し、アプリケーションの状態を調べることができます。

    Debugging an application

    たとえば、サインアップページで指定されたユーザパラメーターを確認できます。

最終更新日 : 2020 年 8 月 19 日

関連ページ:

Docker

Dockerを使用すると、開発者はアプリケーションをコンテナー内にデプロイして、実稼働と同じ環境でコードをテストできます。RubyMineは、Dockerプラグインを使用してDockerサポートを提供します。プラグインはバンドルされ、デフォルトで有効になっています。DockerプラグインはRubyM...

Rubyスクリプトを実行する

RubyMineを使用すると、エディターから、または構成済みパラメーターのセット実行/デバッグ構成を使用して、Rubyスクリプトを迅速に実行またはデバッグできます。たとえば、Rubyの実行/デバッグ構成には、スクリプト引数、環境変数、追加のコマンドライン引数などのパラメーターを指定できます。このトピ...

デバッグ

RubyMineは、ERBおよびHAMLファイルを含むRubyコードのデバッガーを提供します。Ruby 2.0+プロジェクトをデバッグするには、プロジェクトSDKにdebaseおよびruby-debug-idegemsがインストールされている必要があります。これらのgemsがインストールされていない...

テスト

RubyMine は、Ruby / Rails アプリケーションのテストに使用される最も一般的なフレームワークとの統合を提供します。複数または個別のテストを実行したり、テストとテスト対象間を移動したり、不足しているテストを作成したりできます。サポートされているテストフレームワーク / ライブラリ :...

ターミナル

RubyMine には、IDE 内からコマンドラインシェルを操作するための組み込みターミナルエミュレータが含まれています。専用のターミナルアプリケーションに切り替えることなく、Git コマンドの実行、ファイルのアクセス許可の設定、その他のコマンドラインタスクの実行に使用します。ターミナルエミュレータ...

Rubyバージョンマネージャー

LinuxまたはmacOSにRubyをインストールする最も一般的な方法は、バージョンマネージャー(RVMやrbenvなど)を使用することです。バージョンマネージャーを使用すると、マシンに複数のRubyバージョンをインストールして、すばやく切り替えることができます。RubyMineは、ローカルマシンに...