我正在运行一个小测试来连接到 ETCD。这个测试导入go.etcd.io/etcd/clientv3 女巫,通过 go 模块的魔力,拉动github.com/coreos/go-systemd/journal.我使用go 模块来管理依赖项。首先,我在 Windows 下运行了测试,go version go1.13.1 windows/amd64一切都很好并且按预期运行良好。之后,因为我的 etcd 客户端项目打算通过基于 alpine 的 Docker 镜像进行部署,所以我尝试使用 go 1.13 镜像golang:1.13-alpine来编译它我用了 :docker run --rm -v "/${PWD}":/go/src/ -w //go/src/ golang:1.13-alpine go build -o etcd我遇到了第一个已知问题,告诉我该问题git未安装在golang:1.13-alpine构建github.com/nirekin/etcd:无法加载github.com/coreos/go-systemd/journal:git init --bare in /go/pkg/mod/cache/vcs/1f60ff15ab3093bffd86f4a985673d120db13dabca39c597aaa5016031c601a6:exec:“git”:可执行文件在 $PATH 中找不到然后我使用以下 docker 文件构建了一个新映像,以便git添加golang:1.13-alpineDockerfile:FROM golang:1.13-alpineRUN apk --update add git less openssh && \ rm -rf /var/lib/apt/lists/* && \ rm /var/cache/apk/*使用我的新图像,我尝试再次编译docker run --rm -v "/${PWD}":/go/src/ -w //go/src/ my/image go build -o etcd我得到了这个错误:构建 github.com/myuser/etcd:无法加载 github.com/coreos/go-systemd/journal:查询“最新”没有匹配的版本我不明白为什么相同版本的 1.13在解决依赖关系时在windows和alpine下的行为不同?我做错了什么或者遗漏了什么吗?
1 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
问题是go.etcd.io/etcd
依赖于github.com/coreos/go-systemd/journal
linux,它没有正确使用 go 模块。有两个问题(#321和#325)提交给项目,维护者承认该问题(但尚未解决)。
建议的解决方案是将以下内容添加到go.mod
:
replace ( github.com/coreos/go-systemd => github.com/coreos/go-systemd/v22 latest )
然后run go tidy
。(容器内)
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消