Maison  >  Article  >  développement back-end  >  ## Comment pré-mettre en cache les dépendances Go dans les images Docker pour des builds plus rapides ?

## Comment pré-mettre en cache les dépendances Go dans les images Docker pour des builds plus rapides ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 18:50:03123parcourir

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

Créer efficacement des images Docker avec des dépendances pré-mises en cache

Lors de la construction d'images Docker, il est crucial de minimiser le temps de construction. Une stratégie consiste à mettre en cache les dépendances. Cependant, cela nécessite d'abord de créer les dépendances, ce qui peut prendre du temps.

Existe-t-il un moyen de pré-construire plusieurs dépendances répertoriées dans le fichier go.mod ?

La réponse réside dans en utilisant les mécanismes de mise en cache de Docker. La structure Dockerfile suggérée comprend une couche de mise en cache cruciale :

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

Cette étape copie l'exécutable construit à partir d'une étape de construction intermédiaire dans l'image finale. Cependant, l'ingrédient clé se trouve dans la phase de construction :

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

Cette commande monte le répertoire de cache go build par défaut (/root/.cache/go-build) et exécute la commande go build. Le cache garantit que les dépendances ne sont téléchargées et compilées qu'une seule fois, réduisant considérablement les temps de build pour les builds suivantes.

Pour activer la mise en cache, il est essentiel de définir la variable d'environnement DOCKER_BUILDKIT sur 1 :

DOCKER_BUILDKIT=1 docker build -t myimage .

En suivant ces étapes, vous pouvez pré-créer toutes les dépendances dans go.mod et tirer parti de la mise en cache pour rationaliser la création de vos images Docker.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn