チュートリアル: リモートインタープリターとしての 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
を実行できます。次の手順を実行します。
config/database.yml ファイルに移動し、次のコードをコメントアウト Ctrl+/ します。
development: <<: *default adapter: sqlite3 database: db/development.sqlite3 ... test: <<: *default adapter: sqlite3 database: db/test.sqlite3開発環境用に Postgres データベースを使用するように構成する部分のコメントを解除 Ctrl+/ します。
development: <<: *default adapter: postgresql encoding: unicode host: db username: postgres password: database: sample_rails_app_db ... test: <<: *default adapter: postgresql encoding: unicode host: db username: postgres password: database: sample_rails_app_db_testdocker-compose.yml ファイルを開きます。次のコマンドは、Web サービスを実行し続けるために使用されることに注意してください。
web: # command: tail -f /dev/nullRubyMine は
docker-compose exec
コマンドを使用して Ruby 環境を分析し、Docker Compose をリモートインタープリターとして追加するため、Web サービスを実行する必要があります。Web サービスが実行されていない場合は、RubyMine がdocker-compose run
を使用して自動的に実行します。必要に応じて、この動作を変更し、別の方法で Ruby 環境を分析できます。ガターの
をクリックし、Docker Compose がイメージをプル / ビルドし、コンテナーを開始するまで待ちます。
あるいは、RubyMine ターミナルで
docker-compose up
コマンドを実行することもできます。
リモートインタープリターとして Compose を設定する
Docker Compose をリモートインタープリターとして構成することは、次の 2 つの部分で構成されます。
(オプション)Ruby 環境を分析するための IDE が Docker と対話する方法の指定。
リモートインタープリターを設定する
設定ダイアログ Ctrl+Alt+S を開き、言語 & フレームワーク | Ruby SDK および Gem ページに移動します。
をクリックし、リモートインタープリターまたはバージョンマネージャーを選択します。
呼び出されたダイアログで、Docker Compose を選択し、次のオプションを指定します。
サーバー : このオプションは、コンテナーの実行に使用される Docker サーバーを指定します。
構成ファイル : docker-compose.yml ファイルを残します。
サービス : Web サービスを選択します。
Ruby またはバージョンマネージャーのパス : Ruby インタープリターへのパスを自動的に検出するには、デフォルトの ruby 値のままにします。インタープリターまたはバージョンマネージャーの実行可能ファイルへのパスを手動で指定することもできます。
Ruby SDK および Gem ページで追加された SDK を選択して OK をクリックしてください。
RubyMine がインデックス作成プロセスを終了し、ヘルパー Docker イメージとコンテナーを作成するまで待ちます。
(オプション) Ruby Docker 統合を構成する
Docker 内で Ruby インタープリターを操作するために、IDE はコンテナー内で特定のコマンド ( which ruby
、gem env
、rbconfig
など) を実行して Ruby 環境を分析します。これらのコマンドをターゲットコンテナーで実行するか (docker-compose exec
)、新しい環境を作成するか (docker-compose run
)、またはこの目的専用のサービスコンテナーを使用するかを選択できます。
設定ダイアログ Ctrl+Alt+S を開き、ビルド、実行、デプロイ | Docker | Ruby の設定ページに移動します。
コンテナー内で特定のコマンドを実行して、RubyMine が Ruby 環境を分析する方法を指定します。
プロジェクトが稼働中の場合は
docker-compose exec
、それ以外の場合はdocker-compose run
docker-compose exec
、必要に応じてdocker-compose up
でプロジェクトを実行SDK コンテナー内の
docker exec
、必要に応じて SDK コンテナーを作成docker-compose run
gem 同期の構成
RubyMine は定期的に gem 同期を起動し、Docker Compose インタープリターにインストールされている gems に関する情報を収集し、利用可能な機能を判断します。例: RubyMine は、Rupocop インスペクションを実行する前に、rubocop gem がインストールされているかどうかを確認します。
設定ダイアログ Ctrl+Alt+S を開き、ビルド、実行、デプロイ | Docker | Ruby の設定ページに移動します。
次のオプションのいずれかを選択して、Ruby インタープリターおよびインストールされた gems に関する情報を RubyMine のローカルキャッシュにコピーします。
プロジェクトが起動している場合は、実行中のコンテナーを使用します。それ以外の場合は、新しいコンテナーを使用してください : 実行中のコンテナー内で gem 同期を実行するには、このオプションを選択します。実行中のコンテナーがない場合、RubyMine は新しいコンテナーを作成して起動し、そのコンテナー内で gem 同期を 1 回実行します。
常に新しいコンテナーを使用してください : RubyMine が gem 同期を実行するたびに新しいコンテナーを作成して開始するには、このオプションを選択します。
データベースを作成して移行を実行する
Rails アプリケーションをデバッグする前に、データベースを作成して移行を実行する必要があります。
Ctrl を 2 回押して、db: 作成と入力します。ドロップダウンで
rake db:create
を選択して Enter を押します。呼び出された 'db:create' を実行してくださいダイアログのデフォルト設定をそのままにして、OK をクリックします。最後に、データベースを移行するには、Ctrl を 2 回押して db:migrate と入力し、ドロップダウンで
rake db:migrate
を選択して Enter を押します。呼び出されたダイアログで OK をクリックします。
アプリケーションの実行
デバッグの前にアプリケーションを実行して、動作を確認しましょう。
ツールバーで sample_rails_app 構成を選択し、
Shift+F10 をクリックします。
ブラウザーを開き、0.0.0.0:3000 アドレスを入力して Enter を押すと、動作中のアプリケーションが表示されます。
アプリケーションを停止するには、ツールバーの
Ctrl+F2 をクリックします。
実行 / デバッグ構成設定を作成する
デバッグセッションを実行する前に、Docker Compose に関連するスタートアップ設定を調べましょう。
Ctrl+Shift+A を押して、編集設定の入力を始めます。実行構成の編集を選択して Enter を押します。
呼び出された実行 / デバッグ構成ダイアログで、Rails ノードの開発設定を選択します。
docker-compose グループには、Rails アプリケーションを実行 / デバッグするための以下のオプションがあります。
docker-compose exec - RubyMine はすでに実行中のコンテナーでコマンドを実行します。
docker-compose up - RubyMine は、追加設定でリモートインタープリターとして使用されるサービスを開始します(たとえば、デバッガーに必要な追加ポートを公開します)。
docker-compose run - RubyMine は、新しいコンテナーでコマンドを実行します。
デフォルトの docker-compose up のままにして、OK をクリックします。
アプリケーションをデバッグする
users_controller.rb ファイルを開き、新しいユーザーが作成される行の横にある
create
メソッド内にブレークポイントを設定します。sample_rails_app 実行 / デバッグ構成を選択し、
Shift+F9 をクリックします。
RubyMine は、デバッグ gems のインストールを提案します。はいをクリックします。
ブラウザーを開き、アプリケーションアドレス 0.0.0.0:3000 を指定します。
今すぐサインアップ ! ボタンをクリックします。サインアップページで、必要なユーザパラメーターを入力し、アカウントを作るをクリックします。
デバッガーはブレークポイントでセッションを一時停止し、アプリケーションの状態を調べることができます。
たとえば、サインアップページで指定されたユーザパラメーターを確認できます。
関連ページ:

Docker
Docker は、分離された再現可能な環境で実行可能ファイルをデプロイおよび実行するためのツールです。これは、たとえば、本番環境と同じ環境でコードをテストする場合に役立ちます。RubyMine は Docker 機能を統合し、Docker イメージの作成、Docker コンテナーの実行、Docker Compose アプリケーションの管理、パブリックおよびプライベート Docker レジストリの使用など、IDE から直接実行するための支援を提供します。Docker プラグインを有効にするこの機能は...

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

デバッグ
RubyMine は、Ruby コード用のデバッガーを提供します。インストール / 有効化されたプラグインによっては、ERB ファイルや HAML ファイルなど、他の言語で書かれたコードをデバッグすることもできます。Ruby 2.0+ プロジェクトをデバッグするには、プロジェクトインタープリターに debase および ruby-debug-idegems を追加する必要があります。RubyMine は、初めてデバッグを実行するときに、これらの gems のインストールを提案します。デバッグ gems...

ターミナル
RubyMine には、IDE 内からコマンドラインシェルを操作するための組み込みターミナルエミュレータが含まれています。専用のターミナルアプリケーションに切り替えることなく、Git コマンドの実行、ファイルのアクセス許可の設定、その他のコマンドラインタスクの実行に使用します。ターミナルプラグインを有効にするこの機能は、デフォルトで RubyMine にバンドルされて有効になっているターミナルプラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認して...

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

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