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

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

使用 docker Go 客戶端并行構(gòu)建 docker 鏡像

使用 docker Go 客戶端并行構(gòu)建 docker 鏡像

Go
慕哥9229398 2023-06-26 16:22:00
我正在使用 Docker 的 Go 客戶端來構(gòu)建我的項目。我正在調(diào)用ImageBuild我的三個 Dockerfile(1.Dockerfile、2.Dockerfile和3.Dockerfile)作為測試。這是我的代碼:func GetContext(filePath string) io.Reader {? ? // Use homedir.Expand to resolve paths like '~/repos/myrepo'? ? filePath, _ = homedir.Expand(filePath)? ? ctx, err := archive.TarWithOptions(filePath, &archive.TarOptions{})? ? if err != nil {? ? ? ? panic(err)? ? }? ? return ctx}func testImageBuild() {? ? ctx := context.Background()? ? cli, err := client.NewEnvClient()? ? if err != nil {? ? ? ? log.Fatal(err, " :unable to init client")? ? }? ? var wg sync.WaitGroup? ? for i := 0; i < 3; i++ {? ? ? ? wg.Add(1)? ? ? ? go func(i int) {? ? ? ? ? ? defer wg.Done()? ? ? ? ? ? dockerFile := fmt.Sprintf("%d.Dockerfile", i)? ? ? ? ? ? imageBuildResponse, err := cli.ImageBuild(? ? ? ? ? ? ? ? ctx,? ? ? ? ? ? ? ? GetContext("."),? ? ? ? ? ? ? ? types.ImageBuildOptions{? ? ? ? ? ? ? ? ? ? Dockerfile: dockerFile,? ? ? ? ? ? ? ? ? ? Tags:? ? ? ?[]string{fmt.Sprintf("devbuild_%d", i)},? ? ? ? ? ? ? ? })? ? ? ? ? ? if err != nil {? ? ? ? ? ? ? ? log.Fatal(err, " :unable to build docker image"+string(1))? ? ? ? ? ? }? ? ? ? ? ? defer imageBuildResponse.Body.Close()? ? ? ? ? ? _, err = io.Copy(os.Stdout, imageBuildResponse.Body)? ? ? ? ? ? if err != nil {? ? ? ? ? ? ? ? log.Fatal(err, " :unable to read image build response "+string(1))? ? ? ? ? ? }? ? ? ? }(i)? ? }? ? wg.Wait()}func main() {? ? testImageBuild()}GetContext用于將目錄路徑打包為 Docker 的上下文。testImageBuild派生出三個不同的 goroutine 來構(gòu)建三個不同的鏡像。我的問題是:當(dāng)我運行這個時,標(biāo)準(zhǔn)輸出的輸出總是相同的并且似乎是確定性的,這讓我認(rèn)為圖像實際上并不是并行構(gòu)建的。我不熟悉 docker 如何構(gòu)建其鏡像,而且這種方法似乎完全有可能只是并行向 docker 服務(wù)器發(fā)送請求,而不是實際并行構(gòu)建。這是真的?如果是這樣,我如何并行構(gòu)建我的項目?
查看完整描述

1 回答

?
神不在的星期二

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

如果我正確理解你的問題,你有一臺 docker 機器,你想在上面使用 GO 程序同時構(gòu)建圖像。

我嘗試對構(gòu)建相同映像的 Dockerfile 執(zhí)行相同的操作,根據(jù)我的理解,所有這些都是同時構(gòu)建的。

現(xiàn)在,在您的情況下,如果您使用 3 個不同的 docker 文件,那么它們肯定會有不同的構(gòu)建時間,這意味著輸出似乎是確定性的


查看完整回答
反對 回復(fù) 2023-06-26
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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