JetBrains Rider 2024.1 ヘルプ

Dev Containers

開発コンテナー (Dev Container) は、完全に機能する開発環境として使用できるように構成された Docker コンテナーです。

JetBrains Rider を使用すると、このようなコンテナーを使用してプロジェクトを編集、ビルド、実行できます。開発コンテナーの仕様を確認する必要がある場合は、Dev Container プロパティ(英語)を参照してください。

JetBrains Rider は、Docker Compose(英語) プロパティで構成できる複数のコンテナー接続もサポートします。

IDE 内で開発コンテナーを起動できます。JetBrains Gateway または JetBrains Rider からローカルまたはリモートで開始することもできます。

IDE 内で開発コンテナーを開始する

JetBrains Rider 内のルートに devcontainer.json ファイルを含む .devcontainer フォルダーがあるプロジェクトを開き、Docker を使用して IDE から開発コンテナーを起動できます。

IDE から開発コンテナーを作成する

  1. IDE 内で devcontainer.json ファイルを含むプロジェクトを開きます。

    プロジェクトはローカルまたはリモートで開くことができます。

  2. エディターで devcontainer.json ファイルを開きます。

  3. 左側のガターで、Create Dev Container をクリックし、Dev Container の作成とソースのマウントを選択します。

    コンテキストメニューでは次のオプションも使用できます。

    • Dev Container の作成とソースのクローン作成 : このオプションを使用して、プロジェクトのクローンを開発コンテナーに作成します。

    • Dev Containers を表示 : このオプションを使用して、既存の開発コンテナーのリストを確認します。どのものがアクティブで実行されているかを確認したり、停止したり、再起動したりできます。

      See dev containers
    • Dev Container バックエンドの管理 : このオプションを使用して、開発コンテナーから不要なものを選択して削除するなど、開発コンテナーバックエンドを管理します。

      Manage backends
  4. 開発コンテナーが作成されたら、続行をクリックします。

    コンテナーが作成され、JetBrains Client でプロジェクトが開きます。

JetBrains Gateway のウェルカム画面から Dev Container を起動する

開発コンテナーは、JetBrains Gateway からローカルで起動することも、SSH を使用してリモートサーバーに接続することもできます。

JetBrains Gateway から Dev Container を開始する

  1. JetBrains Gateway を起動します

  2. 右側の使用可能なオプションから、開発コンテナーの作成をクリックします。

  3. 開発コンテナーをリモートマシン上に構築する場合は、docker フィールドの横にある Show option menu をクリックして、Docker ダイアログを開きます。

    the Docker dialog

    必要な構成を指定し、「OK」をクリックします。

  4. Git リポジトリフィールドに、GitHub 上のプロジェクトへのパスを指定します。

    参照しているプロジェクトには、開発コンテナー構成を含む devcontainer.json ファイルが必要です。

    開発コンテナーをローカルに構築する場合は、コンテナーを構築して続行をクリックします。

  5. 開発コンテナーが構築されたら、続行をクリックして JetBrains Client でプロジェクトを開きます。

    この時点で、プロジェクトをさらに進めることができます。

JetBrains Rider のウェルカム画面から Dev Container を起動する

開発コンテナーは、ローカルまたは SSH 経由でリモートで JetBrains Rider から直接起動できます。

JetBrains Rider から Dev Container を開始する

  1. JetBrains Rider を起動します。

  2. ウェルカム画面で、「リモート開発」をクリックし、次に「Dev Containers」をクリックします。

  3. 新しい開発コンテナーをクリックします。

  4. 開いたページで、開発コンテナーを構築するプロジェクトのタイプを選択します。

    このオプションを使用すると、ローカルマシンにあるプロジェクトを選択できます。

    プロジェクトの .json ファイルへのパスを指定します。

    このオプションを使用すると、GitHub にあるプロジェクトを指定できます。

    Git リポジトリフィールドに、GitHub 上のプロジェクトへのパスを指定します。

    .json ファイルの検出方法も選択できます。自動検出の場合は自動を選択し、手動検出の場合はパスを指定を選択します。

    コンテナーを構築して続行をクリックします。

  5. 開発コンテナーが構築されたら、続行をクリックして JetBrains Client でプロジェクトを開きます。

    この時点で、プロジェクトをさらに進めることができます。

Dev Container をゼロから始める

devcontainer.json ファイルとそれが提供する構成(英語)を使用して、新しい開発コンテナーを作成できます。

最も簡単な方法は、コンテナーレジストリ (定義済みイメージを含むリポジトリのコレクション) から devcontainer.json ファイルのイメージ (定義済みテンプレート) をプルすることです。

開発コンテナーを作成する

  1. JetBrains Rider でプロジェクトを開きます。

  2. プロジェクトビューで、プロジェクトの名前を右クリックし、追加 | .devcontainer を選択します。

  3. 開いたダイアログで、Dev Container テンプレートフィールドで必要なテンプレートを選択します。

    Create new dev container
  4. OK をクリックします。JetBrains Rider は、コンテナーの説明を含む devcontainer.json ファイルを含む .devcontainer ディレクトリを生成します。必要に応じて構成をカスタマイズできます。

    Dev Container result
  5. 左のガターで、Create Dev Container をクリックし、Dev Container の作成とソースのマウントを選択して開発コンテナーを構築します。

最近のプロジェクト

プロジェクトを閉じるときに、開発コンテナーの処理方法を選択できます。プロジェクトを閉じて開発コンテナーをアクティブなままにすることも、プロジェクトを閉じて開発コンテナーの実行を停止することもできます。

最近の開発コンテナーはすべて、ウェルカム画面のローカルプロジェクトの Dev Containers ノードまたはリモートサーバー名に表示されます。JetBrains Gateway または JetBrains Rider のウェルカム画面から直接、最近の開発コンテナーを開始および停止できます。

関連ページ:

前提条件と制限事項

前提条件:実際の開発コンテナーを記述するファイルを含むフォルダーを含むプロジェクトがあります。現在、ファイルのコード補完は制限されています。ただし、次のプロパティは使用できます。ビルドプロパティがサポートされています。一般プロパティ、、、を除く。Docker compose プロパティがサポートされています。ライフサイクルスクリプトはを除いてサポートされます。ポート属性では、のみがサポートされます。ホストの最小要件はサポートされていません。の変数がサポートされています。、GitHub にアクセ...

JetBrains Gateway に接続して操作する

SSH 接続を使用してリモートサーバーに接続し、プロジェクトを開発、実行、デプロイできます。JetBrains Space、Gitpod、Google Cloud、GitHub Codespaces で実行されている開発環境に接続することもできます。リモートホストの前提条件:Linux プラットフォームに互換性のある SSH サーバーをインストールしました。Linux プラットフォームには、Ubuntu 16.04+、RHEL/Centos 7+ などの最近の Linux AMD64 ディストリ...

セキュリティモデル

作業にリモートサーバーへのアクセスが含まれる場合、ローカルマシンとバックエンド間の接続が保護され、やり取りされるデータが十分に暗号化されていることを確認する必要があります。リモート開発セキュリティモデルを使用すると、作業のほぼすべてのセキュリティ面を制御できます。サーバー側とクライアント側の両方で実行される IDE コンポーネントがあります。バックエンドによってロードされた情報は、それ以上のユーザー操作なしでクライアントに転送できます。また、クライアントに提供されたすべての情報は、ユーザー操作な...