手動依賴關係獲取如何優化 Go Docker 建置?
Dec 10, 2024 am 04:42 AM手動取得 Docker 建置最佳化的依賴
在 Go 程式設計環境中,go 工具通常會自動處理依賴管理和安裝。然而,對於優化的 Docker 映像構建,將依賴項安裝作為一個單獨的階段是有益的。
在 Go 1.11 及更早版本中,由於缺乏專用命令,這是不可能的。但是,問題 #26610 中的修復引入了 go mod download 指令。
要利用此指令來最佳化Docker 建置:
- 複製依賴項清單:將go.mod 和go.sum 檔案複製到Docker 映像的建置中
- 運行go mod download: 在Docker建置階段執行 go mod download 以手動取得依賴項。
這是Docker 多階段的範例使用層快取建置:
FROM golang:1.17-alpine as builder RUN apk --no-cache add ca-certificates git WORKDIR /build # Fetch dependencies COPY go.mod go.sum ./ RUN go mod download # Build COPY . ./ RUN CGO_ENABLED=0 go build # Create final image FROM alpine WORKDIR / COPY --from=builder /build/myapp . EXPOSE 8080 CMD ["/myapp"]
登入後複製
分離依賴安裝使Docker 能夠利用層緩存,使重建更加高效,因為許多程式碼變更通常不會影響依賴項。
此外,請考慮利用「容器化您的 Go 開發人員環境 – 第 2 部分」一文中所述的 Go 編譯器快取來進一步加快建置時間。
以上是手動依賴關係獲取如何優化 Go Docker 建置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)