在做課程作業(yè)時(shí),老師要求將本地golang項(xiàng)目build成docker鏡像迹恐,build過(guò)程中會(huì)出現(xiàn)golang.org包無(wú)法下載的問(wèn)題挣惰,開(kāi)啟VPN也沒(méi)能解決。
可以從dockerfile解決殴边,編寫(xiě)dockerfile時(shí)憎茂,增加指令,使構(gòu)建鏡像時(shí)將本地的golang.org包復(fù)制一份到鏡像中對(duì)應(yīng)目錄下,因?yàn)閐ockerfile構(gòu)建鏡像時(shí)锤岸,上下文環(huán)境是dockerfile所在目錄竖幔,我在dockerfile中訪問(wèn)其他上級(jí)目錄沒(méi)能成功,所以我將golang.org包復(fù)制到了dockerfile目錄中是偷,然后將其copy到鏡像對(duì)應(yīng)目錄下拳氢,最后將本地項(xiàng)目copy進(jìn)鏡像中之后募逞,記得要把此golang.org包刪除,因?yàn)樗F(xiàn)在是多余的馋评,我們已經(jīng)將其移到了$GOPATH/src/golang.org
中放接。
// 從本地復(fù)制golang.org包到鏡像環(huán)境中
COPY "golang.org/" "$GOPATH/src/golang.org/"
COPY . "$GOPATH/src/github.com/CODEJY/agenda-go-server"
// 刪除項(xiàng)目文件中多余的golang.org包
RUN rm -r "$GOPATH/src/github.com/CODEJY/agenda-go-server/golang.org"