Eines der in Go 1.11 eingeführten Schlüsselkonzepte ist die Modulunterstützung. Während die automatische Abhängigkeitsinstallationsfunktion normalerweise von Vorteil ist, kann in einigen Anwendungsfällen ein manuelles Abrufen von Abhängigkeiten erforderlich sein.
Zum Beispiel kann in einer Docker-Build-Umgebung, in der Abhängigkeitsänderungen weitaus seltener sind als Codeänderungen, die Nutzung des Layer-Caching von Docker möglich sein Beschleunigen Sie Neuerstellungen erheblich, indem Sie die Phase der Abhängigkeitsinstallation von der Buildphase trennen.
Go bietet jetzt eine Lösung dafür Herausforderung. Dank Problem Nr. 26610 können Sie den Befehl „go mod download“ verwenden, um Abhängigkeiten manuell abzurufen. Für diesen Befehl ist lediglich das Vorhandensein der Dateien go.mod und go.sum erforderlich.
Hier ist ein Beispiel für einen zwischengespeicherten mehrstufigen Docker-Build, der diese Technik verwendet:
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"]
Zusätzlich der Artikel „Containerisieren Sie Ihre Go-Entwicklerumgebung – Teil 2“ bietet wertvolle Einblicke in die Nutzung des Go-Compiler-Caches zur weiteren Verbesserung der Build-Geschwindigkeit.
Das obige ist der detaillierte Inhalt vonWie kann ich Go-Abhängigkeiten für schnellere Docker-Builds manuell abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!