Abhängigkeiten manuell mit Go-Modulen abrufen
In der Welt des modulbasierten Go-Abhängigkeitsmanagements werden Go-Befehle wie „go build“ oder „go install“ automatisch ausgeführt Erforderliche Abhängigkeiten abrufen und installieren. Wenn Sie jedoch mit Docker für binäre Builds arbeiten, ist es oft von Vorteil, die Abhängigkeitsinstallation in eine separate Phase zu extrahieren, um Caching zu nutzen und die Build-Leistung zu optimieren.
Lösung für den manuellen Abhängigkeitsabruf
Go Version 1.11 führte die Modulunterstützung ein und brachte eine Einschränkung mit sich: die Unfähigkeit, Abhängigkeiten manuell abzurufen. Dieses Problem wurde jedoch inzwischen mit einem Fix in Problem Nr. 26610 behoben.
Jetzt können Sie Abhängigkeiten ganz einfach manuell mit dem folgenden Befehl abrufen:
go mod download
Für diesen Befehl ist nur das Los erforderlich. mod- und go.sum-Dateien funktionieren.
Beispiel Docker Build
Hier ist ein Beispiel für die Implementierung zwischengespeicherter Abhängigkeitsdownloads in einem mehrstufigen Docker-Build:
# Stage 1: Build dependencies FROM golang:1.17-alpine AS builder RUN apk --no-cache add ca-certificates git WORKDIR /build COPY go.mod go.sum ./ RUN go mod download # Stage 2: Build app COPY . ./ RUN CGO_ENABLED=0 go build # Stage 3: Create final image FROM alpine WORKDIR / COPY --from=builder /build/myapp . EXPOSE 8080 CMD ["/myapp"]
Zusätzliche Optimierung
Für Für weitere Leistungsverbesserungen sollten Sie den Go-Compiler-Cache erkunden, wie in „Containerisieren Sie Ihre Go-Entwicklerumgebung – Teil 2."
Das obige ist der detaillierte Inhalt vonWie kann ich Go-Modulabhängigkeiten für optimierte Docker-Builds manuell herunterladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!