我创建了一个docker容器,用于使用GoLang与Google api通讯。我开始使用SCRATCH容器,并certificate signed by unknown authority
在更改为ubuntu / alpine 时遇到错误,但仍然收到错误。
resp, err := client.Get("https://www.googleapis.com/oauth2/v3/userinfo")
解决这个问题的任何帮助都是很好的。我可以在Mac上正常运行代码。
做完一些研究后,我可以看到问题了 https://github.com/golang/go/issues/24652
但是我不知道这是否直接相关,或者是否需要与容器共享一些证书。
BMi*_*tch 23
从头开始,除了图像中的应用程序之外,您还需要包括受信任的证书。例如
FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]
Run Code Online (Sandbox Code Playgroud)
如果您使用Alpine和多阶段构建,则如下所示:
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"]
Run Code Online (Sandbox Code Playgroud)
小智 0
您可以使用专门针对 ubuntu 的自签名证书。在开始之前,您应该为非 root 用户配置 sudo 权限。您可以按照我们针对 Ubuntu 16.04 的初始服务器设置来了解如何设置此类用户帐户。
归档时间: |
|
查看次数: |
2353 次 |
最近记录: |