Skip to content
Latchkey

静的リンクとは?

静的リンクは、必要なライブラリのコードを build 時に実行ファイルにコピーするため、生成されたバイナリは実行に必要なすべてを含みます。それらのライブラリが target システムに存在することへの依存はありません。これにより、より大きいものの完全に自己完結し、deploy が容易な artifact が生成されます。

なぜ重要か

静的リンクされたバイナリは、distroless や scratch のコンテナイメージのような最小限または素のシステム上で、共有ライブラリをインストールせずに動作するため、deploy が簡素化され、依存関係のバージョン不一致を回避できます。トレードオフは、バイナリが大きくなることと、ライブラリのセキュリティ修正を取り込むために rebuild が必要なことです。

関連する概念

  • dynamic linking の対義
  • 最小限の distroless なコンテナイメージを可能にする
  • ライブラリの修正は更新だけでなく rebuild を必要とする

関連ガイド