」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > ## 如何在 Docker 映像中預先快取 Go 依賴項以加快建置速度?

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

發佈於2024-11-08
瀏覽:633

## 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.中預先建置所有相依性並利用快取以簡化Docker 映像的建置。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3