Dans l'environnement de programmation Go, l'outil go gère normalement automatiquement la gestion et l'installation des dépendances. Cependant, pour les builds d'images Docker optimisées, il peut être avantageux de séparer l'installation des dépendances en une étape distincte.
Dans Go 1.11 et les versions antérieures, cela n'était pas possible en raison de l'absence de commande dédiée. Cependant, un correctif dans le numéro 26610 a introduit la commande go mod download.
Pour exploiter cette commande pour les versions Docker optimisées :
Voici un exemple de construction Docker en plusieurs étapes avec mise en cache des couches :
FROM golang:1.17-alpine as builder RUN apk --no-cache add ca-certificates git WORKDIR /build # Fetch dependencies COPY go.mod go.sum ./ RUN go mod download # Build COPY . ./ RUN CGO_ENABLED=0 go build # Create final image FROM alpine WORKDIR / COPY --from=builder /build/myapp . EXPOSE 8080 CMD ["/myapp"]
L'installation des dépendances séparées permet à Docker de tirer parti de la mise en cache des couches, ce qui rend les reconstructions plus efficaces car de nombreuses modifications de code n'affectent généralement pas dépendances.
De plus, envisagez d'exploiter le cache du compilateur Go comme décrit dans l'article « Conteneurisez votre environnement de développement Go – Partie 2 » pour accélérer davantage les temps de construction.
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!