Golang http.Get在Container中显示错误EOF

时间:2017-12-13 21:45:25

标签: docker go ca

我有一个调用HTTP API的golang脚本。当我在开发计算机上运行时,一切都很好用。一旦我创建容器并运行它,我就会在恐慌的URL末尾获得一个EOF。我已经阅读了很多像这样的问题,并尝试过我看到的每个人。我在主机上向容器添加了ca-certificates.crt到/ etc / ssl / certs /。我将请求设置为接近true,我已禁用Keep-Alive和Compression。所有这些步骤都适用于其他帖子。任何帮助表示赞赏。

我从https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt

获得了我的证书文件

我正在运行go版本go1.9.2 darwin / amd64,容器位于ubuntu 16.04主机上。

client := &http.Client{Timeout: 30 * time.Second, Transport: &http.Transport{
    DisableCompression:true,
    DisableKeepAlives:  true,
}}

url := "https://myapiurl.com"
req, err := http.NewRequest("POST", url, bytes.NewBuffer(mybodybytes))
req.Close = true
req.Header.Set("Content-Type", "application/json")
resp, err := client.Do(req)
if err != nil {
    log.Panic(err) // Panics Here
}
defer resp.Body.Close()
...

Dockerfile:

 FROM scratch

    ADD ca-certificates.crt /etc/ssl/certs/

    ADD myservice /
    CMD ["/myservice"]

0 个答案:

没有答案