我正在运行一个小测试来连接到 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-alpine
Dockerfile:
FROM golang:1.13-alpine
RUN 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下的行为不同?
我做错了什么或者遗漏了什么吗?
潇潇雨雨
相关分类