我正在運行一個小測試來連接到 ETCD。這個測試導(dǎo)入go.etcd.io/etcd/clientv3 女巫,通過 go 模塊的魔力,拉動github.com/coreos/go-systemd/journal.我使用go 模塊來管理依賴項。首先,我在 Windows 下運行了測試,go version go1.13.1 windows/amd64一切都很好并且按預(yù)期運行良好。之后,因為我的 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構(gòu)建github.com/nirekin/etcd:無法加載github.com/coreos/go-systemd/journal:git init --bare in /go/pkg/mod/cache/vcs/1f60ff15ab3093bffd86f4a985673d120db13dabca39c597aaa5016031c601a6:exec:“git”:可執(zhí)行文件在 $PATH 中找不到然后我使用以下 docker 文件構(gòu)建了一個新映像,以便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我得到了這個錯誤:構(gòu)建 github.com/myuser/etcd:無法加載 github.com/coreos/go-systemd/journal:查詢“最新”沒有匹配的版本我不明白為什么相同版本的 1.13在解決依賴關(guān)系時在windows和alpine下的行為不同?我做錯了什么或者遺漏了什么嗎?
1 回答

瀟瀟雨雨
TA貢獻1833條經(jīng)驗 獲得超4個贊
問題是go.etcd.io/etcd
依賴于github.com/coreos/go-systemd/journal
linux,它沒有正確使用 go 模塊。有兩個問題(#321和#325)提交給項目,維護者承認該問題(但尚未解決)。
建議的解決方案是將以下內(nèi)容添加到go.mod
:
replace?( ??github.com/coreos/go-systemd?=>?github.com/coreos/go-systemd/v22?latest )
然后run go tidy
。(容器內(nèi))
- 1 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消