利用預先快取的依賴關係高效建置 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