当在docker swarm服务中使用Go程序时,当我调用stream ID 1; PROTOCOL_ERROR
时,我得到400状态和错误消息client.Get(url)
我得到200并且当我{{1时得到结果}}。我使用了"捆绑的CA根证书"从Mozilla的容器内部。任何帮助赞赏。我的代码如下。
go run *.go
我的Dockerfile:
client := &http.Client{Timeout: 30 * time.Second, Transport: &http.Transport{
DisableCompression: true,
DisableKeepAlives: true,
}}
r, err := client.Get(url)
if err != nil {
return err
}
defer r.Body.Close()
bodyBytes, err := ioutil.ReadAll(r.Body)
if err != nil {
fmt.Println(url, err) // The Google Search url and err: stream error: stream ID 1; PROTOCOL_ERROR
return err
}
fmt.Println(r.StatusCode, string(bodyBytes))
return json.NewDecoder(r.Body).Decode(target)
编辑: Debug的输出
FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ENV MODE=production
ADD main /
CMD ["/main"]