静的リンクとは?
静的リンクは、必要なライブラリのコードを build 時に実行ファイルにコピーするため、生成されたバイナリは実行に必要なすべてを含みます。それらのライブラリが target システムに存在することへの依存はありません。これにより、より大きいものの完全に自己完結し、deploy が容易な artifact が生成されます。
なぜ重要か
静的リンクされたバイナリは、distroless や scratch のコンテナイメージのような最小限または素のシステム上で、共有ライブラリをインストールせずに動作するため、deploy が簡素化され、依存関係のバージョン不一致を回避できます。トレードオフは、バイナリが大きくなることと、ライブラリのセキュリティ修正を取り込むために rebuild が必要なことです。
関連する概念
- dynamic linking の対義
- 最小限の distroless なコンテナイメージを可能にする
- ライブラリの修正は更新だけでなく rebuild を必要とする
関連ガイド
What Is Dynamic Linking?Dynamic linking resolves a program's library dependencies at load time from shared libraries on the system, r…
What Is a Distroless Image?A distroless image contains only your application and its runtime dependencies, with no shell, package manage…
What Is a Target Triple?A target triple is a string like x86_64-unknown-linux-gnu that identifies the architecture, vendor, OS, and A…