問題タブ [docker-buildkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
148 参照

docker - CI で Docker BuildKit キャッシュを抽出/再利用する方法

Docker はRUN --mount=type=cacheローカルでうまく機能するものを導入していますが、CI、特に Azure Devops でそれを活用できるようにしたいと考えています。

しかし、ビルド間の方法saveとキャッシュが見つかりません。loadこれを行うオプションはありますか?

0 投票する
1 に答える
140 参照

docker - Docker buildx - モノレポのビルドをサポートする特定のノードを選択する

Tilt ( https://tilt.dev/ )と呼ばれる K8s 開発ツールを使用しています。これは、多数のマイクロサービスを含むスタックの開発イメージを構築し、ライブ リロードなどを可能にします。

buildx create10 個のレプリカを使用して、リモート ビルダー ポッドを AWS K8s クラスターにデプロイしました。ただし、ビルドをスピンオフすると、実際のビルドにはこれらのポッドのうち 2 つしか使用されないように見え (クラスターで見られる CPU とメモリのメトリックに基づく)、残りの 8 つはアイドル状態になります。チルトアップを実行すると、すべてのマイクロサービスの同時イメージ ビルドが開始されるため、実行中の 10 個のビルダー ポッドすべてにビルド ステップを分散することが理想的です。

これは、私たちのプロジェクトが現在 monorepo に存在し、プロジェクトのルート レベルで同じ Dockerfile.dev を使用してすべてのイメージをビルドしているためだと思われます(ビルド時に を使用してマイナー構成が渡されます--build-arg) 。

  1. これを疑うのは正しいですか?わかりにくいですが、Dockerfile コンテキストに基づいて buildx の負荷分散を行っているようです。もしそうなら、この動作をオーバーライドできますか?

  2. あるいは、buildx ノードを手動で選択する方法はありますか? 既存のリモート ノード間でループして構築負荷を分散するセレクターのスクリプトを作成するのは簡単です