"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > ## 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 ?

Publié le 2024-11-08
Parcourir:399

## 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, ce qui réduit considérablement les temps de construction des versions 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é-construire toutes les dépendances dans go.mod et tirez parti de la mise en cache pour rationaliser la création de vos images Docker.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3