Heim >Backend-Entwicklung >Golang >Wie kann das manuelle Abrufen von Abhängigkeiten Go-Docker-Builds optimieren?
In der Go-Programmierumgebung übernimmt das Go-Tool normalerweise die Abhängigkeitsverwaltung und -installation automatisch. Für optimierte Docker-Image-Builds kann es jedoch von Vorteil sein, die Abhängigkeitsinstallation als separate Phase zu trennen.
In Go 1.11 und früheren Versionen war dies aufgrund des Fehlens eines dedizierten Befehls nicht möglich. Durch einen Fix in Problem #26610 wurde jedoch der Befehl „go mod download“ eingeführt.
Um diesen Befehl für optimierte Docker-Builds zu nutzen:
Hier ist ein Beispiel für einen mehrstufigen Docker-Build mit Layer-Caching:
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"]
Durch die getrennte Abhängigkeitsinstallation kann Docker das Layer-Caching nutzen, wodurch Neuerstellungen effizienter werden, da viele Codeänderungen normalerweise keine Auswirkungen haben Abhängigkeiten.
Erwägen Sie außerdem, den Go-Compiler-Cache zu nutzen, wie im Artikel „Containerisieren Sie Ihre Go-Entwicklerumgebung – Teil 2“ beschrieben, um die Build-Zeiten weiter zu verkürzen.
Das obige ist der detaillierte Inhalt vonWie kann das manuelle Abrufen von Abhängigkeiten Go-Docker-Builds optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!