Docker Compose Watch GA リリースの発表

アプリケーション開発の内部ループを改善するツールである Docker Compose Watch が一般提供になりました。ホット リロードは、エンジニアリング ワークフロー機能の 1 つであり、一見マイナーでシンプルに見えますが、累積的な利点があります。 状態を失うことなく、コーディング中にアプリがシームレスに更新されることを信頼できる場合は、目前の作業から焦点を絞ることが 1 つ少なくなります。 フロントエンドコンポーネントがIDEにとどまっている間に生き生きとしているのを見ることができます。 

コンテナ化されたアプリケーション開発では、 Alt + Tab よりも多くの手順があり、ブラウザでリロードを押します。 キャッシュを使用しても、イメージを再構築してコンテナーを再作成すると (特に停止時刻と開始時刻を待機した後)、フォーカスが乱れる可能性があります。

Docker Compose Watch は、これらのワークフローのペーパーカットをスムーズにするために構築されました。 私たちは、ローカル開発のためにオープンソース のDocker Compose プロジェクトを使用している多くの人々から学びました。 現在、フロントエンド開発のホットリロードのユースケースなど、私たちが観察する一般的なワークフローの摩擦にネイティブに取り組んでいます。 

スクエアドッカーは2400x1260pxを作成します

バインドマウントとウォッチ

ホット リロードを機能させるための一般的な回避策は、ローカル システムとコンテナーの間でファイルの変更をミラーリングするようにバインド マウントを設定することです。 この方法では、オペレーティング システムとハイパーバイザー API を使用して、コンテナー内の分離されたファイル システムにローカル ディレクトリを公開します。

Docker Desktop でのバインドマウントの機能は Linux 上の Docker Engine とは異なるため、回避策は簡単なエンジニアリングではありません。 パリティの場合、Docker Desktop は、マシンとその仮想マシン (VM) 間のシームレスで効率的なファイル共有を提供し、アクセス許可を確保し、ファイル通知をレプリケートし、破損を防ぐために低レベルのファイルシステムの一貫性を維持する必要があります。 

対照的に、Docker Compose Watch は特に開発のユースケースを対象としています。 コードの変更がコンテナに同期されるようにして、ReactまたはNextJSが独自のライブリロードを開始できるようにすることができます。 ただし、アドホック テストのためにコンテナーに加えた変更をローカル ディレクトリに反映することは望ましくありません。 このため、Docker Compose Watch のトレードオフでは、Docker Compose を使用した一般的な開発ワークフローをきめ細かく制御することが有利です (図 1 および 2)。

時計ga図1を構成する
図 1: Docker 作成ウォッチの構成。
時計ga図2を構成する
図 2: Docker Compose Watch を使用すると、開発者はローカル ファイルの変更をコンテナーに同期する方法をより細かく制御できます。

開発のためのウォッチの改善

アルファ版のリリース (Compose v2.17 で、Docker Desktop 4.18 にバンドル) 以来、Docker Compose Watch をより高速で堅牢なものにすることで、初期のフィードバックに対応してきました。この改善により、最新の メイン ブランチでのマージやブランチの切り替えなど、多くの変更を開始する一般的な開発タスクの中断が回避されます。 

コード同期操作で、重要でない変更のバッチ処理、デバウンス、無視が行われるようになりました。

  • 以前は多くの API 呼び出しでしたが、Docker エンジンへの 1 つの API 呼び出しとしてバッチ処理されるようになりました。
  • コンテナーへの変更のストリーミングを微調整して、転送パフォーマンスを向上させました。 新しい組み込みの デバウンス メカニズムにより、同じファイルへの連続書き込みの場合に不要な転送が防止されます。 これにより、不要なインクリメンタルコンパイルが防止され、CPU 使用率が最適化されます。
  • 組み込みフィルターは、一般的なコード エディターと統合開発環境 (IDE) によって生成された標準の一時ファイルを無視するように調整されました。

以前は、Docker Compose Watch は、既に実行中の Compose プロジェクトにアタッチする必要がありました。 Docker 作成ウォッチは、起動時に必要なすべてのサービスを自動的にビルドして開始するようになりました。 必要なのは 1 つのコマンドだけです: docker compose watch.

Docker Desktop 4.24でDocker作成ウォッチをお試しください

Compose 2.22.0 以降では、 Docker Desktop 4.24 にバンドルされている Docker Compose Watch が一般公開されました。 必ず 最新バージョンの Docker Desktop にアップグレードし、 を使用してより効率的に docker compose watch開発してください。

Docker Compose Watch がユースケースをどのようにサポートし、どこを改善できるかをお知らせください。または、オープン ソースの Docker Compose プロジェクトに直接貢献することもできます。

さらに詳しく