Dev Containers
開発コンテナー (Dev Container) は、完全に機能する開発環境として使用できるように構成された Docker コンテナーです。
IntelliJ IDEA を使用すると、このようなコンテナーを使用してプロジェクトを編集、ビルド、実行できます。開発コンテナーの仕様を確認する必要がある場合は、Dev Container プロパティ(英語)を参照してください。
IntelliJ IDEA は、Docker Compose(英語) プロパティで構成できる複数のコンテナー接続もサポートします。
IDE 内で開発コンテナーを起動できます。JetBrains Gateway または IntelliJ IDEA からローカルまたはリモートで開始することもできます。
IDE 内で開発コンテナーを開始する
IntelliJ IDEA 内のルートに devcontainer.json
ファイルを含む .devcontainer
フォルダーがあるプロジェクトを開き、Docker を使用して IDE から開発コンテナーを起動できます。
IDE から開発コンテナーを作成する
IDE 内で
devcontainer.json
ファイルを含むプロジェクトを開きます。プロジェクトはローカルまたはリモートで開くことができます。
エディターで
devcontainer.json
ファイルを開きます。左側のガターで、
をクリックし、Dev Container の作成とソースのマウントを選択します。
コンテキストメニューでは次のオプションも使用できます。
Dev Container の作成とソースのクローン作成 : このオプションを使用して、プロジェクトのクローンを開発コンテナーに作成します。
Dev Containers を表示 : このオプションを使用して、既存の開発コンテナーのリストを確認します。どのものがアクティブで実行されているかを確認したり、停止したり、再起動したりできます。
Dev Container バックエンドの管理 : このオプションを使用して、開発コンテナーから不要なものを選択して削除するなど、開発コンテナーバックエンドを管理します。
開発コンテナーが作成されたら、続行をクリックします。
コンテナーが作成され、JetBrains Client でプロジェクトが開きます。
JetBrains Gateway のウェルカム画面から Dev Container を起動する
開発コンテナーは、JetBrains Gateway からローカルで起動することも、SSH を使用してリモートサーバーに接続することもできます。
JetBrains Gateway から Dev Container を開始する
JetBrains Gateway を起動します。
右側の使用可能なオプションから、開発コンテナーの作成をクリックします。
開発コンテナーをリモートマシン上に構築する場合は、docker フィールドの横にある
をクリックして、Docker ダイアログを開きます。
必要な構成を指定し、「OK」をクリックします。
Git リポジトリフィールドに、GitHub 上のプロジェクトへのパスを指定します。
参照しているプロジェクトには、開発コンテナー構成を含む
devcontainer.json
ファイルが必要です。開発コンテナーをローカルに構築する場合は、コンテナーを構築して続行をクリックします。
開発コンテナーが構築されたら、続行をクリックして JetBrains Client でプロジェクトを開きます。
この時点で、プロジェクトをさらに進めることができます。
IntelliJ IDEA のウェルカム画面から Dev Container を起動する
開発コンテナーは、ローカルまたは SSH 経由でリモートで IntelliJ IDEA から直接起動できます。
IntelliJ IDEA から Dev Container を開始する
IntelliJ IDEA を起動します。
ウェルカム画面で、「リモート開発」をクリックし、次に「Dev Containers」をクリックします。
新しい開発コンテナーをクリックします。
開いたページで、開発コンテナーを構築するプロジェクトのタイプを選択します。
このオプションを使用すると、ローカルマシンにあるプロジェクトを選択できます。
プロジェクトの
.json
ファイルへのパスを指定します。このオプションを使用すると、GitHub にあるプロジェクトを指定できます。
Git リポジトリフィールドに、GitHub 上のプロジェクトへのパスを指定します。
.json
ファイルの検出方法も選択できます。自動検出の場合は自動を選択し、手動検出の場合はパスを指定を選択します。コンテナーを構築して続行をクリックします。
開発コンテナーが構築されたら、続行をクリックして JetBrains Client でプロジェクトを開きます。
この時点で、プロジェクトをさらに進めることができます。
Dev Container をゼロから始める
devcontainer.json
ファイルとそれが提供する構成(英語)を使用して、新しい開発コンテナーを作成できます。
最も簡単な方法は、コンテナーレジストリ (定義済みイメージを含むリポジトリのコレクション) から devcontainer.json
ファイルのイメージ (定義済みテンプレート) をプルすることです。
開発コンテナーを作成する
IntelliJ IDEA でプロジェクトを開きます。
プロジェクトビューで、プロジェクトの名前を右クリックし、新規 | .devcontainer を選択します。
開いたダイアログで、Dev Container テンプレートフィールドで必要なテンプレートを選択します。
OK をクリックします。IntelliJ IDEA は、コンテナーの説明を含む devcontainer.json ファイルを含む .devcontainer ディレクトリを生成します。必要に応じて構成をカスタマイズできます。
左のガターで、
をクリックし、Dev Container の作成とソースのマウントを選択して開発コンテナーを構築します。
最近のプロジェクト
プロジェクトを閉じるときに、開発コンテナーの処理方法を選択できます。プロジェクトを閉じて開発コンテナーをアクティブなままにすることも、プロジェクトを閉じて開発コンテナーの実行を停止することもできます。
最近の開発コンテナーはすべて、ウェルカム画面のローカルプロジェクトの Dev Containers ノードまたはリモートサーバー名に表示されます。JetBrains Gateway または IntelliJ IDEA のウェルカム画面から直接、最近の開発コンテナーを開始および停止できます。
![最近の Dev Containers Recent Dev Containers](https://resources.jetbrains.com/help/img/idea/2024.1/ij_recent_projects_dev_containers.png)
![ローカルコンテナーとリモートコンテナー Local and remote containers](https://resources.jetbrains.com/help/img/idea/2024.1/recent_containers.png)
関連ページ:
![](https://pleiades.io/icons/idea.png)
前提条件と制限事項
前提条件:実際の開発コンテナーを記述するファイルを含むフォルダーを含むプロジェクトがあります。現在、ファイルのコード補完は制限されています。ただし、次のプロパティは使用できます。ビルドプロパティがサポートされています。一般プロパティ、、、を除く。Docker compose プロパティがサポートされています。ライフサイクルスクリプトはを除いてサポートされます。ポート属性では、のみがサポートされます。ホストの最小要件はサポートされていません。の変数がサポートされています。、GitHub にアクセ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/toolbox_gateway.png)
JetBrains Gateway 設置シナリオ
JetBrains Gateway のインストールに使用できるシナリオはいくつかあります。リモート開発 Gateway はデフォルトでバンドルされているプラグインであるため、IntelliJ IDEA を使用できます。IntelliJ IDEA のバージョンとプロジェクトを管理する JetBrains Gateway インストールには、JetBrains Toolbox を使用できます。JetBrains Gateway を別のランチャーとしてインストールできます。ローカルの IntelliJ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/db_data-sharing.png)
セキュリティモデル
作業にリモートサーバーへのアクセスが含まれる場合、ローカルマシンとバックエンド間の接続が保護され、やり取りされるデータが十分に暗号化されていることを確認する必要があります。リモート開発セキュリティモデルを使用すると、作業のほぼすべてのセキュリティ面を制御できます。サーバー側とクライアント側の両方で実行される IDE コンポーネントがあります。バックエンドによってロードされた情報は、それ以上のユーザー操作なしでクライアントに転送できます。また、クライアントに提供されたすべての情報は、ユーザー操作な...