Maison >développement back-end >Golang >Comment puis-je télécharger manuellement les dépendances du module Go pour des versions Docker optimisées ?

Comment puis-je télécharger manuellement les dépendances du module Go pour des versions Docker optimisées ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-09 19:29:11302parcourir

How Can I Manually Download Go Module Dependencies for Optimized Docker Builds?

Récupération manuelle des dépendances avec les modules Go

Dans le monde de la gestion des dépendances basée sur les modules Go, les commandes Go telles que go build ou go install automatiquement récupérer et installer les dépendances requises. Cependant, lorsque vous travaillez avec Docker pour des builds binaires, il est souvent avantageux d'extraire l'installation des dépendances dans une étape distincte pour tirer parti de la mise en cache et optimiser les performances de build.

Solution de récupération manuelle des dépendances

La version 1.11 de Go a introduit la prise en charge des modules, et avec elle une limitation : l'impossibilité de récupérer manuellement les dépendances. Cependant, ce problème a depuis été résolu avec un correctif dans le numéro 26610.

Désormais, vous pouvez facilement récupérer les dépendances manuellement à l'aide de la commande :

go mod download

Cette commande ne nécessite que le déplacement. fichiers mod et go.sum pour fonctionner.

Exemple Docker Build

Voici un exemple de la façon d'implémenter les téléchargements de dépendances en cache dans une build Docker en plusieurs étapes :

# Stage 1: Build dependencies
FROM golang:1.17-alpine AS builder
RUN apk --no-cache add ca-certificates git
WORKDIR /build
COPY go.mod go.sum ./
RUN go mod download

# Stage 2: Build app
COPY . ./
RUN CGO_ENABLED=0 go build

# Stage 3: Create final image
FROM alpine
WORKDIR /
COPY --from=builder /build/myapp .
EXPOSE 8080
CMD ["/myapp"]

Optimisation supplémentaire

Pour Pour d'autres améliorations des performances, envisagez d'explorer le cache du compilateur Go comme décrit dans « Conteneuriser votre environnement de développement Go – Partie 2."

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