我正在運(yùn)行一個(gè)小測(cè)試來(lái)連接到 ETCD。這個(gè)測(cè)試導(dǎo)入go.etcd.io/etcd/clientv3 女巫,通過(guò) go 模塊的魔力,拉動(dòng)github.com/coreos/go-systemd/journal.我使用go 模塊來(lái)管理依賴(lài)項(xiàng)。首先,我在 Windows 下運(yùn)行了測(cè)試,go version go1.13.1 windows/amd64一切都很好并且按預(yù)期運(yùn)行良好。之后,因?yàn)槲业?etcd 客戶(hù)端項(xiàng)目打算通過(guò)基于 alpine 的 Docker 鏡像進(jìn)行部署,所以我嘗試使用 go 1.13 鏡像golang:1.13-alpine來(lái)編譯它我用了 :docker run --rm -v "/${PWD}":/go/src/ -w //go/src/ golang:1.13-alpine go build -o etcd我遇到了第一個(gè)已知問(wèn)題,告訴我該問(wèn)題git未安裝在golang:1.13-alpine構(gòu)建github.com/nirekin/etcd:無(wú)法加載github.com/coreos/go-systemd/journal:git init --bare in /go/pkg/mod/cache/vcs/1f60ff15ab3093bffd86f4a985673d120db13dabca39c597aaa5016031c601a6:exec:“git”:可執(zhí)行文件在 $PATH 中找不到然后我使用以下 docker 文件構(gòu)建了一個(gè)新映像,以便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è)錯(cuò)誤:構(gòu)建 github.com/myuser/etcd:無(wú)法加載 github.com/coreos/go-systemd/journal:查詢(xún)“最新”沒(méi)有匹配的版本我不明白為什么相同版本的 1.13在解決依賴(lài)關(guān)系時(shí)在windows和alpine下的行為不同?我做錯(cuò)了什么或者遺漏了什么嗎?
1 回答

瀟瀟雨雨
TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
問(wèn)題是go.etcd.io/etcd
依賴(lài)于github.com/coreos/go-systemd/journal
linux,它沒(méi)有正確使用 go 模塊。有兩個(gè)問(wèn)題(#321和#325)提交給項(xiàng)目,維護(hù)者承認(rèn)該問(wèn)題(但尚未解決)。
建議的解決方案是將以下內(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)注
- 163 瀏覽
添加回答
舉報(bào)
0/150
提交
取消