Erreur de création d'image en plusieurs étapes Docker : x509 : certificat signé par une autorité inconnue
Cette erreur se produit lors de la création d'images Docker qui s'appuient sur Git pour la gestion des dépendances, telles que celles utilisant la technique docker-multi-stage-build.
Aperçu du problème
Pendant la création de l'image, Git utilise le magasin CA du système pour vérifier Certificats SSL. Cependant, dans les réseaux privés, ce magasin peut ne pas contenir les certificats nécessaires pour se connecter à des serveurs externes comme GitHub et proxy.golang.org, ce qui entraîne l'erreur « x509 : certificat signé par une autorité inconnue ».
Solution de contournement
Le problème peut être résolu en important les certificats dans le magasin de l'autorité de certification du système.
Solution
Obtenir les certificats : Récupérez les certificats des serveurs problématiques à l'aide des commandes OpenSSL suivantes :
Dockerfile révisé
Le Dockerfile révisé suivant intègre les étapes d'importation du certificat :
<code class="dockerfile">FROM golang:latest as builder RUN apt-get update && apt-get install -y ca-certificates openssl ARG cert_location=/usr/local/share/ca-certificates # Get certificate from "github.com" RUN openssl s_client -showcerts -connect github.com:443 < /dev/null 2> /dev/null | openssl x509 -outform PEM > ${cert_location}/github.crt # Get certificate from "proxy.golang.org" RUN openssl s_client -showcerts -connect proxy.golang.org:443 < /dev/null 2> /dev/null | openssl x509 -outform PEM > ${cert_location}/proxy.golang.crt # Update certificates RUN update-ca-certificates WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN GO111MODULE="on" CGO_ENABLED=0 GOOS=linux go build -o main ${MAIN_PATH} FROM alpine:latest LABEL maintainer="Kozmo" RUN apk add --no-cache bash WORKDIR /app COPY --from=builder /app/main . EXPOSE 8080 CMD ["/app/main"]</code>
Remarque : La mise à jour La commande -ca-certificates peut prendre quelques minutes. Une fois terminé, les versions ultérieures de Docker devraient se poursuivre sans l'erreur « x509 : certificat signé par une autorité inconnue ».
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!