IntelliJ IDEA 2024.1 ヘルプ

Dev Containers に関する FAQ

開発コンテナーを作成した後、Docker にさまざまなボリュームとプロパティが表示されます: それぞれは何をするのでしょうか?

開発コンテナーが作成されると、次のボリュームとプロパティが Docker に表示されます。

  • jb_devcontainer_cache_xxx : これは、root/cached/jetbrains フォルダー内のすべてのバックエンドキャッシュを含むキャッシュボリュームです。

  • jb_devcontainers_shared_volume : IDE バックエンドをコピーするプロセスにはある程度の時間がかかります。ただし、このプロセスは最初の開発コンテナーの作成時に 1 回だけ実行され、すべてがこのボリュームにコピーされます。その後、このボリュームは複数のコンテナー間で共有されるため、ダウンロードプロセスを繰り返す必要はありません。別の IDE または異なる IDE バージョンを使用して開発コンテナーを作成する場合は、それを同じ Docker ボリュームにコピーします。すべてのバックエンドは 1 つのボリュームに保存されるため、管理が簡単になります。

    例: バックエンドの管理ダイアログを使用して不要なバックエンドを削除します。

  • jb-devcontainer-features-xxx : devcontainer.json ファイルで features を使用すると、すべてのフィーチャがそのようなイメージに配置されます。

    現時点では、不要なイメージは手動で削除する必要があります。

  • jb_devcontainer_sources_xxx : git clone を使用する場合、ヘルパーコンテナー (alpine/git イメージに基づく) を使用して、すべてのソースがこのボリュームにクローン作成されます。

開発コンテナーの作成時にログ情報を追加するにはどうすればよいですか ?

ヘルプ | 診断ツール | デバッグログ設定に次の文字列を追加します。

com.intellij.platform.ijent:all
com.intellij.clouds.docker.gateway.ijent:all

-ssh git clone を使用してリモート dev コンテナーを作成するための SSH 接続が成功したことをどのように理解すればよいですか ?

次のコマンドを実行します。

docker --host <ssh> build <git-url>:<context-dir>

次の例を確認してください。

docker --host ssh://jetbrains@MUNIT-234:22 build git@git.jetbrains.team/devcont/DevCont_test_cases.git:.devcontainer

開発コンテナーの作成中に alpine/git イメージがプルされるのはなぜですか ?

小さな alpine/git イメージに基づいてヘルパーコンテナーを作成します。このイメージには、必要なツールやライブラリ (git や SSH クライアントなど) の一部が含まれています。これは、開発コンテナーの作成に使用されるイメージに存在しない可能性があるリポジトリのクローンを作成するために必要です。

SSH Docker 接続に Dev Container の作成とソースのマウントオプションを使用しないのはなぜですか ?

すべてのソースがすでにローカルにある場合は、SSH 経由の Docker のような複雑で遅い方法を使用する必要はありません。

オープンリモートプロジェクト内に Dev Container を作成することは可能ですか ?

SSH 接続を使用してリモートプロジェクトに接続したとします。次に、devcontainer.json を追加し、リモートマシン上の Dev Container とマウントソースを作成するを介して開発コンテナーを作成しようとしました。

現在、このようなシナリオはサポートされておらず、実行中のバックエンドクライアント接続から開発コンテナーを作成することはできません。リモートプロジェクトに対応するガターオプションがある場合は、対応する問題(英語)に投票またはコメントを追加してください。

回避策として、Docker セクションの手順に従うことができます。

SSH 経由でリモートで開発コンテナーを作成するには、なぜ Docker をローカルにインストールする必要があるのですか ?

ローカル Docker は正しいコンテキストを収集し、非常に大きくなる可能性があるリポジトリ全体ではなく、必要なファイルのみを開発コンテナーにクローンします。

より詳細には、Docker には、docker-compose を構築するために必要なすべてのファイルを含む正しいコンテキストが必要です。これらのファイルは、さまざまな場所 (フォルダー、モジュールなど) に存在する可能性があります。すべての可能なファイルを事前にクローンし、リモートマシンでコンテキストを収集すると、リポジトリが広範囲になる可能性があるため、時間がかかります。この実装は以前にも使用されており、ユーザーからパフォーマンスに関する苦情が多く寄せられていたことに注意してください。現在、実装は異なる方法で動作しています。ローカル Docker を使用して正しいコンテキストを収集し、必要なファイルのみをリモートマシンにクローンします。ローカル Docker CLI が必要です。

関連ページ:

Docker

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

認証情報の共有

リモートサーバー上に開発コンテナーを構築する場合、リモートサーバーにアクセスしてプロジェクトを複製するには認証が必要です。現在サポートされている認証方法は、SSH キーによるものです。パスワード認証はまだサポートされていません。関連する問題に従って更新してください。パスワード認証がある場合は、SSH キーを含むファイルを生成し、それをリモートサーバーに転送し、Git 資格情報を共有する方法について次の手順を参照してください。SSH キーを作成して転送するローカルターミナルを開き、次のコマンドを使...

開発コンテナーの問題のトラブルシューティング

開発コンテナー機能はまだベータ版であるため、開発コンテナーでの作業中に役立つ、発生する可能性のある問題と解決策を以下に示します。無効なボタンがある空の建物 Dev Container ダイアログがあります:Docker をチェックして、ハングしている場合は再起動してください。Windows 10 では SSH による接続が非常に遅い:OpenSSH バージョンを 8.5 以降にアップグレードします。Git クローンが機能せず、キーを追加したにもかかわらず、クライアントで開かれたプロジェクトが...