Docker 容器中的 HTTP 请求因 HTTPS 端点而失败

我在 golang 中构建了一个小应用程序,使用 alpine:golang 基本映像,其中包括来自 HTTP.get 的响应。


我请求的 api 端点通过 HTTPS ( https://jsonplaceholder.typicode.com/users )运行


该代码在本地运行良好,并且 docker 映像构建良好,但运行时出现以下错误:


The HTTP request failed with error Get "https://jsonplaceholder.typicode.com/users": x509: certificate signed by unknown authority

我不确定这是否是特定的 Docker 问题(我无法从其他 Docker 容器卷曲 HTTPS)、我的网络限制(我不在 VPN 上但我们确实使用 zScaler),或者我是否需要包括/configure 作为我的 Dockerfile 的一部分。我的 dockerfile 看起来像:


FROM alpine:golang


#Create and set the working directory

RUN mkdir /app 

WORKDIR /app 


# Copy all the go scripts into the image working directory

COPY /pipelines/core/rtbf-pipeline-1 ./



# Make the binaries executable

RUN chmod +x /app/rtbf-pipeline-1


CMD ["app"]

任何帮助将不胜感激


噜噜哒
浏览 90回答 2
2回答

慕的地10843

您需要将一组受信任的根证书复制到您的 Docker 映像。在您Dockerfile添加类似的内容:FROM golang:alpine AS build// build your go app hereFROM scratch// copy go app from `build`// ...//// add trust certs//COPY --from=build etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/

慕村225694

您可能需要添加RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go