第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

go build 找不到 docker 上的本地依賴

go build 找不到 docker 上的本地依賴

Go
拉丁的傳說 2022-10-17 16:06:37
我正在嘗試為我的 go 服務器創(chuàng)建一個 dockerfile,但它一直失敗,因為它無法識別一些本地依賴項(它們是代碼本身的模塊,而不是外部依賴項)。例子:import (    "<private-repo-url>/src/cmd/http-api/bootstrap" // this a local module that's part of the server    "go.uber.org/fx")func main() {    fx.New(bootstrap.Module).Run()}這是錯誤: => ERROR [7/7] RUN go build -a -o ./server                                                                                                                                                                        0.3s------ > [7/7] RUN go build -a -o ./server:#10 0.295 server.go:4:2: no required module provides package <private-repo-url>/src/cmd/http-api/bootstrap; to add it:#10 0.295       go get <private-repo-url>/src/cmd/http-api/bootstrap------executor failed running [/bin/sh -c go build -a -o ./server]: exit code: 1請注意,此private-repo-url對應于此應用程序的存儲庫(它不是外部依賴項)。這是 DockerfileFROM golang:1.17WORKDIR /balrog# Copy dependency definitions and download themADD go.mod .ADD go.sum .RUN go mod download# Build the binaryADD ./src .ENV CGO_ENABLED=0ENV GOOS=linuxENV GOARCH=amd64RUN go build -a -o ./server#Run the serverCMD ["/server"]還有 mod.go 文件:module <private-repo-url>go 1.16require (    github.com/gin-gonic/gin v1.7.7    github.com/google/uuid v1.3.0    github.com/kelseyhightower/envconfig v1.4.0    github.com/sirupsen/logrus v1.8.1    go.uber.org/fx v1.15.0)我讀過GO111MODULE說它應該打開,并且我還讀到它從 1.17 開始默認啟用(這里)。同樣根據(jù)官方 docker 映像(在dockerhub中),正確的方法是在復制所有文件后使用go get和go install 。這種方法使我遇到了一個稍微不同的問題,即 docker 無法訪問存儲庫(因為它是私有的)并且我想避免向 docker 添加憑據(jù)。我嘗試使用環(huán)境變量GOVCS設置它的值,例如:ENV GOVCS=github.com:git,gitlab.com:off但它仍然失敗并出現(xiàn)同樣的錯誤。最后我嘗試了替換,我認為如果我從本地依賴項中刪除它會起作用,所以我執(zhí)行了(在 Dockerfile 中)這個:RUN go mod edit -replace <private-repo-url>=./有什么方法可以防止 go builder/package installer 在外部查找這些文件?由于go mod和go get + go install 都嘗試訪問此私有存儲庫,但由于它們無權訪問而失敗。但是他們不應該首先嘗試訪問它,因為它是應用程序的存儲庫......或者我做錯了什么(顯然或者我不會在這里),錯過了什么?
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

ADD ./src .- 將內(nèi)容復制src到當前文件夾,剝離src部分。

它應該只是COPY . ./

另請注意,不建議src在源代碼樹中包含子文件夾 - 包含的文件夾go.mod已經(jīng)是源代碼樹。


查看完整回答
反對 回復 2022-10-17
  • 1 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號