使用預先快取的依賴項高效能建置 Docker 映像
建置 Docker 映像時,最大限度地縮短建置時間至關重要。一種策略是快取相依性。然而,這需要先建立依賴項,這可能很耗時。
有沒有辦法預先建立 go.mod 檔案中列出的多個依賴項?
答案在於利用 Docker 的快取機制。建議的 Dockerfile 結構包括一個關鍵的快取層:
FROM scratch COPY --from=build /out/example /
此步驟將建置的可執行檔從中間建置階段複製到最終映像中。然而,關鍵在於建置階段:
RUN --mount=type=cache,target=/root/.cache/go-build go build -o /out/example .
該指令掛載預設的 go build 快取目錄(/root/.cache/go-build)並執行 go build 指令。快取確保依賴項僅下載和編譯一次,從而顯著減少後續建置的建置時間。
要啟用緩存,必須將DOCKER_BUILDKIT 環境變數設為1:
DOCKER_BUILDKIT=1 docker build -t myimage .
透過執行以下步驟,您可以在go.mod 中預先建置所有相依性並利用快取來簡化Docker 映像建置。
以上是## 如何在 Docker 映像中預先快取 Go 依賴項以加快建置速度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!