亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

構建 Go 程序 Docker 鏡像時從遠程基礎鏡像指向本地依賴

構建 Go 程序 Docker 鏡像時從遠程基礎鏡像指向本地依賴

Go
qq_遁去的一_1 2022-06-13 14:58:42
請注意,我是 Golang 和 Docker 開發的新手。我已經在其他地方問過這個問題并嘗試閱讀文檔但找不到任何解決方案。問題和代碼我有兩個回購/home/experience/keep-ecdsa,我從這個項目/home/experience/keep-core中分叉并在本地克隆。我正在嘗試為keep-ecdsa本地構建一個 docker 映像。這是我的分叉回購的鏈接。有一些keep-core依賴項,我想指向我的本地keep-core倉庫。因此,我將我的更改go.mod為:module github.com/keep-network/keep-ecdsago 1.13replace (    //unrelated stuff...    github.com/keep-network/keep-core => /home/experience/keep-core)require (    //unrelated stuff...    github.com/keep-network/keep-core v1.1.3)DOCKERFILE 開始如下(單擊此處查看完整文件):FROM golang:1.13.8-alpine3.10 AS runtimeENV APP_NAME=keep-ecdsa \    BIN_PATH=/usr/local/binFROM runtime AS gobuildENV GOPATH=/go \    GOBIN=/go/bin \    APP_NAME=keep-ecdsa \    APP_DIR=/go/src/github.com/keep-network/keep-ecdsa \    BIN_PATH=/usr/local/bin \    # GO111MODULE required to support go modules    GO111MODULE=on    //rest of the linked DOCKERFILE運行時docker build .,我收到以下錯誤,該錯誤發生RUN go mod download在DOCKERFILE.Step 13/27 : RUN go mod download--> Running in 88839fc42d4ego: github.com/keep-network/[email protected]: parsing /home/experience/keep-core/go.mod: open /home/experience/keep-core/go.mod: no such file or directoryThe command '/bin/sh -c go mod download' returned a non-zero code: 1我的嘗試和領先我試圖:GOPATH將 DOCKERFILE 中的 my更改為各種絕對本地 fs 路徑使APPDIRDOCKERFILE 中的 my 指向我的絕對本地路徑/home/experience/keep-ecdsareplace ( )將語句中的路徑更改go.mod為各種路徑(絕對本地、相對GOPATH等)有人給了我這個線索:你在一個golang:1.13.8-alpine3.10基礎鏡像里面,所以里面沒有/home/experience/keep-core,因為它只在你本地的 fs 上但我仍然不知道如何實現我想要的。也許用FROM ... AS runtine一些本地基礎圖像替換 DOCKERFILE 中的語句?但是我如何找到這樣相關的基本圖像,它不會改變 DOCKERFILE 的其余指令嗎?請記住,我將對keep-core依賴項進行本地更改并且需要對其進行測試,因此包含的解決方案replace (github.com/mygithubprofile/keep-core)并不令人滿意。先感謝您。
查看完整描述

1 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

您在 golang:1.13.8-alpine3.10 基礎映像中,因此其中沒有 /home/experience/keep-core ,因為它僅在您的本地 fs 上


從我在文件中看到的內容來看,您尚未將/home/experience/keep-core計算機上的目錄復制到 docker 映像中,因此由于該目錄尚不存在,因此會引發錯誤。


Docker 無法跟蹤當前上下文目錄之外的鏈接,因此如果您不想編輯replace (github.com/mygithubprofile/keep-core),可以將 DockerFile 移動到/home/experience/并使用COPY命令將keep-core文件夾從本地計算機復制到 docker 映像。


RUN mkdir -p /home/experience/keep-core

COPY ./keep-core /home/experience/keep-core

但是,如果您希望 DockerFile 保留在/home/experience/keep-ecdsa您可以將keep-core文件夾移動到文件keep-ecdsa夾中并在文件中忽略它.gitignore。然后更新


replace (

    //unrelated stuff...

    github.com/keep-network/keep-core => /home/experience/keep-core

)


replace (

    //unrelated stuff...

    github.com/keep-network/keep-core => /home/experience/keep-ecdsa/keep-core

)


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號