Go モジュールのサポートでは、ビルドまたはインストール プロセス中に依存関係が自動的に管理され、インストールされます。これは、依存関係の管理を簡素化するという目標と一致しています。
ただし、一部の開発者は、依存関係を明示的に管理する柔軟性を好みます。他のエコシステムでは、依存関係マニフェスト (package.json など) をコピーし、依存関係を個別にインストールするのが一般的です。このアプローチでは、Docker のレイヤー キャッシュを利用して再構築のパフォーマンスを最適化します。
ソリューション
このニーズに応えるために、Go は問題 #26610 で修正されたソリューションを導入しました。開発者は go mod download コマンドを使用して依存関係を手動で取得できるようになりました。このコマンドに必要なのは go.mod および go.sum ファイルのみです。
Docker ビルドでこのコマンドを使用する方法の例を以下に示します。
FROM golang:1.17-alpine as builder ... # Fetch dependencies COPY go.mod go.sum ./ RUN go mod download # Build ...
さらに、 Go コンパイラ キャッシュを使用したさらなる最適化手法については、記事「Go 開発者環境のコンテナ化 – パート 2」を参照してください。
以上がGo は最適化されたビルドに対して明示的な依存関係の取得を許可しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。