Les développeurs rencontrent une erreur lorsque exécuter un conteneur Docker avec http.Client de GoLang pour interagir avec l'API Google. Cette erreur provient d'un problème où les certificats manquent de confiance dans l'environnement du conteneur.
Le problème survient parce que les images Docker basées sur Scratch ne disposent pas des certificats de confiance nécessaires. Lorsqu'ils utilisent des images de travail, les développeurs doivent inclure manuellement ces certificats dans l'image.
Pour résoudre ce problème, suivez ces étapes :
Injecter des certificats de confiance :
Pour les images scratch, incluez le ca-certificates.crt à côté de votre code d'application :
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
Pour les versions en plusieurs étapes où vous souhaitez uniquement des certificats emballés par le fournisseur de distribution :
FROM golang:alpine as build RUN apk --no-cache add ca-certificates WORKDIR /go/src/app COPY . . RUN CGO_ENABLED=0 go-wrapper install -ldflags '-extldflags "-static"' FROM scratch # copy the ca-certificate.crt from the build stage COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=build /go/bin/app /app ENTRYPOINT ["/app"]
Redémarrez votre conteneur :
Une fois les certificats injectés, redémarrez votre conteneur Docker pour appliquer les modifications.
En suivant ces étapes, vous devriez pouvoir utiliser avec succès http.Client de GoLang dans votre conteneur Docker sans rencontrer l'erreur « 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!