首頁  >  文章  >  後端開發  >  ## 如何在 Docker 映像中預先快取 Go 依賴項以加快建置速度?

## 如何在 Docker 映像中預先快取 Go 依賴項以加快建置速度?

Susan Sarandon
Susan Sarandon原創
2024-10-26 18:50:03123瀏覽

## How to Pre-Cache Go Dependencies in Docker Images for Faster Builds?

使用預先快取的依賴項高效能建置 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn