RubyMine 2021.1 ヘルプ

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

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

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

前提条件

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

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

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

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

この章では、フロントエンド用の webデータベース用の db の 2 つのサービスでアプリケーションを実行します。これを行うには、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 rubygem 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

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

関連ページ:

Docker | RubyMine

Docker を使用すると、開発者は、本番環境と同じ環境でコードをテストするために、コンテナー内にアプリケーションをデプロイできます。RubyMine は、Docker プラグインを使用して Docker サポートを提供します。プラグインはバンドルされており、デフォルトで有効になっています。Docker プラグインは RubyMine にバンドルされており、デフォルトでアクティブ化されています。プラグインが無効になっている場合は、プラグインの管理の説明に従って、設定 / 環境設定 | プラグインページ...

Ruby スクリプトを実行する | RubyMine

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

デバッグ | RubyMine

RubyMine は、ERB ファイルと HAML ファイルを含む Ruby コード用のデバッガーを提供します。Ruby 2.0+ プロジェクトのデバッグには、プロジェクト SDK に debase と ruby-debug-idegems がインストールされている必要があります。これらの gems がインストールされていない場合、RubyMine は、初めてデバッグを実行するときにこれを行うことを提案します。一般的なデバッグ手順(オプション)ページでデバッガー設定を構成します。必要に応じて、既存の実...

ターミナル | RubyMine

RubyMine には、IDE 内からコマンドラインシェルを操作するための組み込みターミナルエミュレータが含まれています。専用のターミナルアプリケーションに切り替えることなく、Git コマンドの実行、ファイルのアクセス許可の設定、およびその他のコマンドラインタスクの実行に使用します。ターミナルエミュレータは最初、デフォルトのシステムシェルで実行されますが、Windows PowerShell、コマンドプロンプト cmd.exe、、など、他の多くのシェルをサポートしています。シェルの変更については、...

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

Linux または macOS に Ruby をインストールする最も一般的な方法は、バージョンマネージャー(RVM や rbenv など)を使用することです。バージョンマネージャーを使用すると、マシンに複数の Ruby バージョンをインストールして、すばやく切り替えることができます。RubyMine は、ローカルマシンにインストールされ、次のバージョンマネージャーによって管理されるインタープリターを自動的に検出します。RVM、gemsets 用の rbenv-gemsets プラグインを備えた rben...

Rake タスクの実行 | RubyMine

Rake は、Ruby および Rails アプリケーションで人気のあるタスクランナーです。例: Rails は、データベースの作成、移行の実行、テストの実行のための事前定義された Rake タスクを提供します。カスタムタスクを作成して特定のアクションを自動化することもできます。コード分析ツールの実行、データベースのバックアップなど。RubyMine は、Rake タスクを実行、デバッグ、および再ロードする便利な方法を提供します。さらに、実行 / デバッグ構成を使用して、特定のパラメーターでタスク...