Docker Multi-Stage Go 이미지 빌드에서 "x509: Certificate Signed by Unknown Authority" 오류 문제 해결
다중 개인 네트워크에서 Go 애플리케이션용 Docker 이미지를 준비하면 다음 오류가 발생할 수 있습니다.
x509: certificate signed by unknown authority
이 오류는 go get 또는 go mod 다운로드를 통해 종속성을 다운로드할 때 인증서 확인의 어려움으로 인해 발생합니다. GIT_SSL_NO_VERIFY 환경 변수를 설정하면 에이전트 환경 변수에 대해 이 문제를 우회할 수 있지만, go get 또는 go mod download를 사용할 때는 작동하지 않습니다.
해결 방법
이 문제를 해결하려면 보안 인증서 확인을 발급하고 활성화하면 openssl을 사용하여 필요한 인증서를 시스템의 CA 저장소로 가져올 수 있습니다. 예:
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 # Proceed with your build process...
인증서를 CA 저장소로 가져오면 git 종속성 검색을 위한 보안 인증서 확인이 활성화됩니다.
예
다음 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 ["/main"]
이 Dockerfile은 필요한 인증서를 가져오고 CA 저장소를 업데이트하여 개인 네트워크 내에서 Go 애플리케이션 빌드에 대한 종속성을 검색하는 동안 보안 인증서 확인을 허용합니다.
위 내용은 Docker Multi-Stage Go 이미지 빌드에서 \'x509: 알 수 없는 기관에 의해 서명된 인증서\' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!