Docker 다단계 이미지 빌드 오류: x509: 알 수 없는 기관에서 서명한 인증서
이 오류는 Git에 의존하는 Docker 이미지를 빌드할 때 발생합니다. docker-multi-stage-build 기술을 사용하는 것과 같은 종속성 관리를 위해.
문제 개요
이미지 빌드 중에 Git은 시스템 CA 저장소를 사용하여 확인합니다. SSL 인증서. 그러나 개인 네트워크에서는 이 저장소에 GitHub 및 Proxy.golang.org와 같은 외부 서버에 연결하는 데 필요한 인증서가 포함되어 있지 않아 "x509: 알 수 없는 기관에서 서명된 인증서" 오류가 발생할 수 있습니다.
해결 방법
인증서를 시스템 CA 저장소로 가져오면 문제를 해결할 수 있습니다.
해결책
인증서 받기: 다음 OpenSSL 명령을 사용하여 문제가 있는 서버에 대한 인증서를 검색합니다.
수정된 Dockerfile
다음 수정된 Dockerfile에는 인증서 가져오기 단계가 포함되어 있습니다.
<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>
참고: 업데이트 -ca-certificates 명령을 완료하는 데 몇 분 정도 걸릴 수 있습니다. 완료되면 후속 Docker 빌드는 "x509: 알 수 없는 기관에서 서명된 인증서" 오류 없이 진행되어야 합니다.
위 내용은 Docker 다단계 이미지 빌드 오류를 수정하는 방법: \'x509: 알 수 없는 기관에서 서명한 인증서\'?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!