Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membetulkan Ralat Binaan Imej Berbilang Peringkat Docker: \'x509: Sijil Ditandatangani oleh Pihak Berkuasa Tidak Diketahui\'?
Ralat Binaan Imej Berbilang Peringkat Docker: x509: Sijil Ditandatangani oleh Pihak Berkuasa Tidak Diketahui
Ralat ini berlaku semasa membina imej Docker yang bergantung pada Git untuk pengurusan pergantungan, seperti yang menggunakan teknik binaan berbilang peringkat docker.
Gambaran Keseluruhan Masalah
Semasa membina imej, Git menggunakan stor CA sistem untuk mengesahkan sijil SSL. Walau bagaimanapun, dalam rangkaian peribadi, kedai ini mungkin tidak mengandungi sijil yang diperlukan untuk menyambung ke pelayan luaran seperti GitHub dan proxy.golang.org, mengakibatkan ralat "x509: sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui".
Penyelesaian
Masalah boleh diselesaikan dengan mengimport sijil ke dalam stor sistem CA.
Penyelesaian
Dapatkan Sijil: Dapatkan sijil untuk pelayan yang bermasalah menggunakan arahan OpenSSL berikut:
Fail Docker yang disemak
Fail Docker yang disemak berikut menggabungkan langkah-langkah import sijil:
<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>
Nota: Kemas kini Perintah -ca-certificates mungkin mengambil masa beberapa minit untuk diselesaikan. Setelah selesai, binaan Docker berikutnya harus diteruskan tanpa ralat "x509: sijil ditandatangani oleh pihak berkuasa yang tidak diketahui".
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat Binaan Imej Berbilang Peringkat Docker: \'x509: Sijil Ditandatangani oleh Pihak Berkuasa Tidak Diketahui\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!