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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

有沒有辦法設(shè)置多個(gè)本地 Go 模塊,以便它們可以在一個(gè) Docker 容器中運(yùn)行

有沒有辦法設(shè)置多個(gè)本地 Go 模塊,以便它們可以在一個(gè) Docker 容器中運(yùn)行

Go
HUX布斯 2022-09-26 19:59:45
因此,我的目標(biāo)是建立一個(gè)本地開發(fā)環(huán)境,其中多個(gè)Go服務(wù)(全部作為獨(dú)立模塊)在多個(gè)Docker容器和一個(gè)Go模塊中運(yùn)行,所有服務(wù)都可以用來啟動(dòng)一個(gè)連接到數(shù)據(jù)庫等的新服務(wù),而無需在每個(gè)模塊/服務(wù)中重復(fù)此代碼。所以我的結(jié)構(gòu)看起來像這樣(在$GOPATH/src/github.com/名稱/后端/中):|--services|  |--service1|     |--Dockerfile|     |--main.go|     |--go.mod|  |--service2|     |--Dockerfile|     |--main.go|     |--go.mod|--serviceHelper|  |--serviceHelper.go|  |--go.mod我的泊塢文件目前只是一個(gè)普通的 Go 多克文件:FROM golang:alpine AS build-envWORKDIR /backendADD . /backendRUN cd /backend && go build -o service1FROM alpineRUN apk update && \   apk add ca-certificates && \   update-ca-certificates && \   rm -rf /var/cache/apk/*WORKDIR /backendCOPY --from=build-env /backend/service1 /backendEXPOSE 8080ENTRYPOINT ["./service1"]我的go.mod文件也只是:module github.com/name/backend/services/service1go 1.17我現(xiàn)在遇到的問題是,你要么必須從github存儲(chǔ)庫中提取一個(gè)模塊,我不想這樣做,要么將serviceHelper代碼放在服務(wù)的每個(gè)模塊中,我也不想這樣做。我使用VSCode,從那以后就知道你必須將單個(gè)模塊放入單個(gè)工作區(qū)文件夾中。我仍然無法設(shè)法在本地配置模塊以在一個(gè)服務(wù)中導(dǎo)入普通包,例如我的本地包。我使用Apple M1,我希望這可能不會(huì)引起問題。github.com/gorilla/mux我需要如何配置 go.mod 文件、Docker 文件和 Go 導(dǎo)入,以便我可以在編輯器中正常調(diào)試 Go(即,服務(wù)助手模塊不僅直接加載到 Docker 容器中),還可以在本地運(yùn)行所有內(nèi)容,而不必從 github 獲取服務(wù)助手?更新:我已經(jīng)嘗試了很多變體,但是有了這個(gè)(謝謝你的答案colm.anseo),我得到了最少的錯(cuò)誤消息,但它仍然試圖連接到github,我不想要。因此,更新后的 go.mod 文件如下所示:module github.com/name/backend/services/service1go 1.17require (    github.com/name/backend/serviceHelper v1.0.0    github.com/gorilla/mux v1.8.0)replace github.com/name/backend/serviceHelper => ../../serviceHelper然后,當(dāng)我嘗試使用 構(gòu)建一個(gè)新的 go.sum 時(shí),會(huì)發(fā)生此錯(cuò)誤(這就是我所說的錯(cuò)誤,“并且還可以在本地運(yùn)行所有內(nèi)容,而不必從 github 獲取 serviceHelper”,因?yàn)槲抑坝龅竭^此錯(cuò)誤):go mod tidygithub.com/name/backend/servicehelper: cannot find module providing package github.com/name/backend/servicehelper: module github.com/name/backend/servicehelper: git ls-remote -q origin in /Users/myName/go/pkg/mod/cache/vcs/...: exit status 128:        ERROR: Repository not found.        fatal: Could not read from remote repository.        Please make sure you have the correct access rights        and the repository exists.我不希望它連接到github,我只希望它在本地運(yùn)行。在 colm.anseo 的答案的幫助下,我認(rèn)為我知道如何創(chuàng)建一個(gè)有效的 Dockerfile,所以這不再是一個(gè)問題了。
查看完整描述

2 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

replace github.com/name/backend/serviceHelper => ../../serviceHelper
...
github.com/name/backend/servicehelper: cannot find module

導(dǎo)入?yún)^(qū)分大小寫。我建議在導(dǎo)入、替換語句和要導(dǎo)入的包的 go.mod 文件中將所有內(nèi)容都設(shè)為小寫。


查看完整回答
反對(duì) 回復(fù) 2022-09-26
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

如果您還沒有準(zhǔn)備好將代碼發(fā)布到互聯(lián)網(wǎng)git存儲(chǔ)庫(如 ),則可以在中使用 replace 指令:github.comgo.mod


module github.com/me/my_app


go 1.17


require (

    github.om/gorilla/handlers v1.5.1

    github.com/me/my_srv1

)


replace github.com/me/my_srv1 => ./my_srv1

在您的Go代碼中,您可以導(dǎo)入此代碼,就好像它來自互聯(lián)網(wǎng)一樣:


// go code

import (

    "github.om/gorilla/handlers"

    "github.com/me/my_srv1"

)

在 Docker 上下文中,必須確保在與 相同的相對(duì)路徑中復(fù)制并訪問該目錄。./my_srv1go build


go build然后與將一起從互聯(lián)網(wǎng)上拉取軟件包 - 但使用本地開發(fā)目錄作為您的(尚未發(fā)布的)存儲(chǔ)庫的替代品。go.modgorilla/mux


查看完整回答
反對(duì) 回復(fù) 2022-09-26
  • 2 回答
  • 0 關(guān)注
  • 125 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)