RubyMine 2018.3ヘルプ

リモートインタープリターとしてのDocker Composeの使用

前提条件

次の前提条件が満たされていることを確認してください。

  • Dockerがインストールされています。Dockerはさまざまなプラットフォームにインストールできますが、ここではmac OS(英語)インストールを使用します。

    このチュートリアルをさまざまなプラットフォームで繰り返すこともできます。Windows(英語)Linux(英語)にはDockerのインストールを使用してください(Ubuntu、他のディストリビューション関連の指示も利用可能です)。

  • Dockerを使用する前に、Docker インテグレーションプラグインが有効であることを確認してください。プラグインはRubyMineにバンドルされており、デフォルトで有効になっています。プラグインが有効になっていない場合は、プラグインの管理の説明に従って、設定/環境設定ダイアログプラグインの設定ページでプラグインを有効にします。

  • Dockerでの作業を始める前に、Docker統合およびRuby Dockerプラグインが有効であることを確認してください。プラグインはRubyMineにバンドルされており、デフォルトで有効になっています。プラグインが有効になっていない場合は、プラグインの管理の説明に従って、設定/環境設定ダイアログプラグインの設定ページでプラグインを有効にします。

例の準備

Dockerの場合と同じ例を使用します: VCS | バージョン管理からチェックアウトに行き、Gitを指す:

rm connect to git sample

念のため、リポジトリのURLを入力してテストをクリックします。接続は成功しました。次に、クローンをクリックしてGitHubからプロジェクト(英語)をダウンロードします。RubyMineはディレクトリーを開くかどうかを確認します - はいと答えます。

DockerおよびDocker-Composeのファイルの追加

プロジェクトツールウィンドウでプロジェクトルートを右クリックして新規 | ファイルAlt+Insert)を選択し、ファイル名(ここでは Dockerfile)を入力して次のコードを入力します。

FROM ruby:2.3.3 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /myapp ADD Gemfile /myapp/Gemfile ADD Gemfile.lock /myapp/Gemfile.lock RUN bundle install ADD . /myapp

次に、 docker-compose.yml ファイルに対して同じ手順を繰り返して、次のコードを入力します。

version: '2' services: web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp ports: - "3000:3000"

Dockerの設定

この例を準備したので、Dockerを設定しましょう。これを行うには、環境設定ダイアログ(Ctrl+Alt+S またはメインツールバーの Settings をクリック)を開き、ビルド、実行、デプロイノードにあるDockerページをクリックします。Dockerサーバーを作成するには、 Add a docker server をクリックします。

推奨されるデフォルト値を受け入れます。

rm docker settings

macOSの場合、Mac用Dockerを選択してDockerデーモンに接続します。

次に、変更を適用します。

リモートインタープリターとしてのDocker Composeの設定

Docker-Composeに基づいてリモートインタープリターを定義しましょう。

これを行うには、環境設定ダイアログを開きます( Ctrl+Alt+S を押すか、メインツールバーの Settings をクリックします)。

次に、Ruby SDK および Gemページをクリックしてください。このページで、+をクリックして新規リモート...を選択します。

rm choose remote

表示されたダイアログボックスで、Docker-Composeオプションを選択し、ドロップダウンリストからDockerサーバーを選択します(希望するサーバーがない場合は新規...をクリックします)。Docker-Composeコンフィギュレーションファイル(ここでは docker-compose.yml、参照ボタンをクリックして必要なファイル)、目的のサービス(ここでは web)とRubyインタープリターのパスを選択します。

rm choose docker compose 1

その後、RubyMineがあなたのリモートインタープリターを取得し、必要なgemsをインストールしている間、時間を待つことができます:

rm docker compose up

最後に、[環境設定]ダイアログで、Docker-ComposeコンテナのRuby SDKが利用可能なSDKのリストに表示され、'リモート'というプレフィックスが付けられます。その後、対応するラジオボタンを選択することで、この新しいインタープリターをプロジェクトインタープリターとして選択する必要があります。

rm docker compose remote interpreter

変更を適用し、ダイアログを閉じます。

Dockerツールウィンドウを使用する

Docker設定したので、DockerツールウィンドウボタンはRubyMineのメインウィンドウの下部に表示されます。

rm docker tool window button

このボタンをクリックして、コンテナが動作していることを確認します。

rm docker running container

Docker-Composeでアプリケーションを実行する

まず、Railsアプリケーションを実行しているときに、移行を実行する必要があります。

これを行うには、メインメニューでツール | Rake タスクの実行...を選択し、表示されたダイアログボックスで migrateと入力します。

rm run rake task migration

db:migrateを選択します。移行が実行されます。

次に、通常のRailsサーバーの実行/デバッグ構成を作成します。そのためには、メインメニューで実行 | 構成の編集...を選択します。開いたダイアログボックスで+をクリックしてRailsを選択します。

この構成(実行 | 実行 'Production:DockerRailsSQLite')を起動します。

rm docker compose run

Webブラウザで出力を確認するには、次のリンクをクリックしてください:

rm docker rails run output

Docker-Composeでのアプリケーションのデバッグ

これらのgemsはプロジェクトのGemfileに書き込まれます:

gem 'debase' gem 'ruby-debug-ide'

例:

rm debug gems

次に、 docker build . コマンドを実行します。ちなみに、RubyMineは、 docker build . コマンドを実行するための Gemfile のインテンションアクションを示唆しています(これらのgemsがない場合)。

rm docker build intention

次に、Docker ComposeのデバッグモードでRailsアプリケーションを起動しましょう。これを行うには、ブレークポイントを設定し、メインメニューで実行 | デバッグ 'Production:DockerRailsSQLite'を選択するか、 Production:DockerRailsSQLite の実行/デバッグ設定を選択した状態で実行/デバッグ設定ドロップダウンの横にある icons actions startDebugger svg をクリックします。

rm debug docker rails app

結果を以下に示します。

rm docker compose rails app debug

要約

RubyMineの助けを借りて行われたことを要約しましょう:

  • GitHubからRailsアプリケーションをダウンロードして開きました。

  • 特定のDocker Composeファイルをプロジェクトに追加しました。

  • Docker Composeをベースにしたリモートインタープリターを構成しました。

  • Docker ComposeコンテナでRailsアプリケーションを実行しました。

  • Docker ComposeコンテナのRailsアプリケーションをデバッグしました。

最終更新日: 2019年1月10日

関連事項

リファレンス: