gpt4 book ai didi

docker - 使用 Go docker SDK 的二进制 TLS 配置失败

转载 作者:数据小太阳 更新时间:2023-10-29 03:34:48 27 4
gpt4 key购买 nike

我有一个 golang 二进制文件,它使用 TLS 与远程 docker 守护进程通信。二进制文件在本地计算机上成功运行。但是在 docker ubuntu 容器中运行此二进制文件时,tls 配置失败。它因以下错误而 panic

    /usr/local/go/src/crypto/x509/cert_pool.go:96 +0x6b
crypto/x509.(*CertPool).AppendCertsFromPEM(0x0, 0xc4202bd4c8, 0x0, 0x200, 0xac8)
/usr/local/go/src/crypto/x509/cert_pool.go:128 +0x161
github.com/docker/go-connections/tlsconfig.certPool(0xc420240de0, 0x18, 0xc42018bc00, 0x51bbca, 0xc420240e20, 0x19)
/media/atom/lighthouse/gowork/src/github.com/docker/go-connections/tlsconfig/config.go:105 +0x283
github.com/docker/go-connections/tlsconfig.Client(0xc420240de0, 0x18, 0xc420240e00, 0x1a, 0xc420240e20, 0x19, 0x0, 0x0, 0x0, 0x0, ...)
/media/atom/lighthouse/gowork/src/github.com/docker/go-connections/tlsconfig/config.go:199 +0x25a

)

二进制文件使用 github.com/docker/docker/client,官方 docker golang SDK。

最佳答案

我无法从您发布的内容中看出原因,但以下程序的堆栈跟踪看起来与您所看到的非常相似。解决方案很可能是确保您的 *x509.CertPool 不能为 nil

package main

import (
"fmt"
"crypto/x509"
)

func main() {
var cp *x509.CertPool
cert := &x509.Certificate{}
cp.AddCert(cert)
fmt.Println("AddCert succeeded")
}

Playground link

关于docker - 使用 Go docker SDK 的二进制 TLS 配置失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46789780/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com