编译时我收到错误。
根本原因是文件导入了context
个包,但是在编译期间github.com/docker/docker/vendor/golang.org/x/net/context
被引用了a,任何关于如何使它引用context
导入的指针代替docker' vendor
包
总结这个问题, 文件中的导入如下
import "golang.org/x/net/context"
有一个方法调用,它将上下文对象作为参数,但是,有两个存储库具有上下文,
在基于长度的编译期间,go选择2存储库。但是方法需要第一个golang.org/x/net/context。因此,收到了代码段中的类型错误
"-X main.version=dev-49-gc8cc01b -X main.commit=c8cc01b -X main.branch=master" ./...
github.com/influxdata/telegraf/plugins/inputs/docker
plugins/inputs/docker/docker.go:103: cannot use c (type *client.Client) as type DockerClient in assignment:
*client.Client does not implement DockerClient (wrong type for ContainerList method)
have ContainerList("github.com/docker/docker/vendor/golang.org/x/net/context".Context, types.ContainerListOptions) ([]types.Container, error)
want ContainerList("context".Context, types.ContainerListOptions) ([]types.Container, error) make: *** [build] Error 2 sh-4.2# vi plugins/inputs/docker/docker.go
答案 0 :(得分:-1)
我能想到的两个选择:
为上下文导入添加别名,例如
goContext golang.org/x/net/context docContext github.com/docker/docker/vendor/golang.org/x/net/context
将上下文依赖关系分解为两个文件或包