我有一个调用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"]