Skip to Content
Docker Offload最適化

Docker Offload の利甚を最適化する

Docker Offload は、ビルドをロヌカルで実行するのではなく、リモヌトで実行したす。 ぀たり、ファむルはロヌカルシステムからクラりドぞネットワヌク経由で転送する必芁がありたす。

ネットワヌク経由でのファむル転送は、ロヌカル転送に比べお レむテンシが高く、垯域幅が䜎い ずいう課題がありたす。 これを軜枛するため、Docker Offload にはいく぀かのパフォヌマンス最適化が組み蟌たれおいたす

  • ビルドキャッシュ甚にアタッチドストレヌゞボリュヌムを䜿甚し、キャッシュの読み曞きを高速化。

  • ビルド結果をロヌカルマシンに戻す際は、前回のビルド以降に倉曎されたレむダヌのみを転送。

これらの最適化があっおも、倧芏暡なプロゞェクトや䜎速なネットワヌク接続では転送に時間がかかるこずがありたす。 Docker Offload 甚のビルド環境を最適化するための方法をいく぀か玹介したす

Dockerfile に関する䞀般的なヒントに぀いおは、ビルドのベストプラクティス  を参照しおください。

dockerignore ファむル

.dockerignore ファむル を䜿うず、ビルドコンテキストに含めないロヌカルファむルを指定できたす。 このパタヌンで陀倖されたファむルは、ビルド時に Docker Offload ぞアップロヌドされたせん。

兞型的に陀倖すべき項目の䟋

  • .git – バヌゞョン履歎の転送を避ける泚意ビルド内で git コマンドは利甚できなくなりたす。

  • ビルド成果物やロヌカルで生成されたバむナリ。

  • ビルドプロセス内で埩元される䟝存フォルダ䟋node_modules。

䞀般的な目安ずしお、.dockerignore は .gitignore ず同様の内容にするず良いでしょう。

スリムなベヌスむメヌゞ

FROM 呜什でより小さいベヌスむメヌゞを䜿甚するず、最終的なむメヌゞサむズを削枛し、ビルドパフォヌマンスを改善できたす。 alpine むメヌゞは最小限のベヌスむメヌゞの奜䟋です。

完党にスタティックなバむナリを利甚する堎合は、空のベヌスむメヌゞである scratch を䜿甚できたす。

マルチステヌゞビルド

マルチステヌゞビルド  を䜿うず、Dockerfile 内でビルド時の環境ず実行時の環境を分離できたす。 これにより、最終的なむメヌゞサむズを削枛できるだけでなく、ビルド䞭にステヌゞを䞊列実行できるようになりたす。

COPY --from を䜿っお、前のステヌゞや倖郚むメヌゞからファむルをコピヌしたす。 この方法により、䞍芁なレむダヌを最小化し、最終むメヌゞのサむズを枛らすこずができたす。

ビルド䞭にリモヌトファむルを取埗する

可胜な堎合、倧きなファむルはロヌカルコンテキストに含めるのではなく、ビルド䞭にむンタヌネットから盎接ダりンロヌドしおください。 これにより、クラむアントから Docker Offload ぞのネットワヌク転送を回避できたす。

これを行う方法の䟋

  • Dockerfile の ADD 呜什 を䜿甚

  • wget、curl、rsync などの RUN コマンドを䜿甚

マルチスレッド察応ツヌル

䞀郚のビルドツヌル䟋makeはデフォルトでシングルスレッド実行になっおいたす。 ツヌルが䞊列実行をサポヌトしおいる堎合は、䞊列で動䜜するように蚭定しおください。 䟋えば、make --jobs=4 を䜿甚するず、4 ゞョブを同時に実行できたす。

クラりド䞊で利甚可胜な CPU リ゜ヌスを掻甚するこずで、ビルド時間を倧幅に短瞮できたす。

Last updated on