„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > ## Wie kann ich Go-Abhängigkeiten in Docker-Images für schnellere Builds vorab zwischenspeichern?

## Wie kann ich Go-Abhängigkeiten in Docker-Images für schnellere Builds vorab zwischenspeichern?

Veröffentlicht am 08.11.2024
Durchsuche:570

## How to Pre-Cache Go Dependencies in Docker Images for Faster Builds?

Effizientes Erstellen von Docker-Images mit vorab zwischengespeicherten Abhängigkeiten

Beim Erstellen von Docker-Images ist es wichtig, die Erstellungszeit zu minimieren. Eine Strategie besteht darin, Abhängigkeiten zwischenzuspeichern. Allerdings müssen dazu zuerst die Abhängigkeiten erstellt werden, was zeitaufwändig sein kann.

Gibt es eine Möglichkeit, mehrere in der Datei go.mod aufgeführte Abhängigkeiten vorab zu erstellen?

Die Antwort liegt in Nutzung der Caching-Mechanismen von Docker. Die vorgeschlagene Dockerfile-Struktur enthält eine wichtige Caching-Ebene:

FROM scratch
COPY --from=build /out/example /

Dieser Schritt kopiert die erstellte ausführbare Datei aus einer Zwischen-Build-Phase in das endgültige Image. Die wichtigste Zutat liegt jedoch in der Build-Phase:

RUN --mount=type=cache,target=/root/.cache/go-build go build -o /out/example .

Dieser Befehl stellt das standardmäßige Go-Build-Cache-Verzeichnis (/root/.cache/go-build) bereit und führt den Go-Build-Befehl aus. Der Cache stellt sicher, dass Abhängigkeiten nur einmal heruntergeladen und kompiliert werden, wodurch die Erstellungszeiten für nachfolgende Builds erheblich verkürzt werden.

Um Caching zu aktivieren, ist es wichtig, die Umgebungsvariable DOCKER_BUILDKIT auf 1 zu setzen:

DOCKER_BUILDKIT=1 docker build -t myimage .

Durch Befolgen dieser Schritte können Sie alle Abhängigkeiten in go.mod vorab erstellen und nutzen Sie Caching, um Ihre Docker-Image-Builds zu optimieren.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3