## Wie kann ich Abhängigkeiten in meiner Docker-Datei vorab erstellen, um die Image-Erstellung zu beschleunigen?

Susan Sarandon
Freigeben: 2024-10-31 12:30:31
Original
260 Leute haben es durchsucht

## How Can I Pre-Build Dependencies in My Dockerfile for Faster Image Builds?

Abhängigkeiten vor dem Erstellen für schnellere Docker-Image-Builds

Beim Erstellen eines Docker-Images können Caching-Abhängigkeiten die Erstellungszeiten erheblich verkürzen. Der anfängliche Erstellungsprozess für diese Abhängigkeiten kann jedoch zeitaufwändig sein. Um diesen Prozess zu optimieren, suchen Entwickler häufig nach Möglichkeiten, alle in der Datei go.mod definierten Abhängigkeiten vorab zu erstellen.

Die Lösung

Docker bietet eine effektive Methode, um diese Vorab-Optimierung zu erreichen. Wenn Sie Ihre Docker-Datei wie unten empfohlen strukturieren, können Sie von einem Caching-Mechanismus profitieren, der nachfolgende Builds erheblich beschleunigt:

FROM --platform=${BUILDPLATFORM} docker.io/golang:1.16.7-alpine AS build
ARG TARGETOS
ARG TARGETARCH
WORKDIR /src
ENV CGO_ENABLED=0
COPY go.* .
RUN go mod download
COPY . .
RUN --mount=type=cache,target=/root/.cache/go-build \
GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /out/example .

FROM scratch
COPY --from=build /out/example /
Nach dem Login kopieren

Diese Docker-Datei nutzt einen Cache-Mount am Standardspeicherort für den Go-Build-Cache, /root/. Cache/Go-Build. Während des ersten Builds wird dieser Cache gefüllt. Nachfolgende Builds verwenden die zwischengespeicherten Dateien wieder, wodurch langwierige Abhängigkeitsneuerstellungen entfallen.

Aktivierung und Überprüfung

Um diese Optimierung zu aktivieren, müssen Sie Docker BuildKit aktivieren, indem Sie DOCKER_BUILDKIT=1 in Ihrem Build-Befehl festlegen . Alternativ können Sie das Docker-Buildx-Dienstprogramm verwenden.

DOCKER_BUILDKIT=1 docker build -t myimage .
Nach dem Login kopieren
docker buildx build -t myimage .
Nach dem Login kopieren

Um die Wirksamkeit dieser Optimierung zu überprüfen, muss überprüft werden, ob das Go-Build-Cache-Verzeichnis gefüllt ist, bevor Go Build in nachfolgenden Builds ausgeführt wird. Tests haben die beabsichtigte Funktionalität dieses Pre-Building-Ansatzes bestätigt.

Das obige ist der detaillierte Inhalt von## Wie kann ich Abhängigkeiten in meiner Docker-Datei vorab erstellen, um die Image-Erstellung zu beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!