Bekas Docker dengan GoLang HTTP.Client Encounters Certificate Authority Error
Dalam percubaan untuk berkomunikasi dengan Google API, seorang individu membina Docker bekas menggunakan GoLang. Pada mulanya, bekas SCRATCH telah digunakan, mengakibatkan ralat "sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui." Apabila bertukar kepada ubuntu/alpine, ralat berterusan.
Isu ini timbul kerana ketiadaan sijil yang dipercayai dalam bekas. Untuk membetulkannya, dua pendekatan boleh diguna pakai:
Imej Gores
Sertakan sijil yang dipercayai bersama-sama dengan permohonan:
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
Binaan Berbilang Peringkat
Gunakan sijil yang disediakan oleh pengedaran vendor:
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 --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=build /go/bin/app /app ENTRYPOINT ["/app"]
Dengan menggunakan kaedah ini, kontena akan memiliki sijil yang diperlukan, membolehkan komunikasi lancar dengan API Google.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui' Apabila Menggunakan HTTP.Client GoLang dalam Bekas Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!