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

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

在 golang 中導(dǎo)入存檔/tar 時(shí) docker run 失敗

在 golang 中導(dǎo)入存檔/tar 時(shí) docker run 失敗

Go
喵喵時(shí)光機(jī) 2023-06-01 17:22:17
我試圖讓一個(gè)在 cmd 行上運(yùn)行的 golang 程序在 docker 容器中運(yùn)行,但是導(dǎo)入 archive/tar 會(huì)導(dǎo)致錯(cuò)誤。這有效:    package main    import (            "fmt"    )    func main() {            fmt.Println("success!")    }產(chǎn)生輸出:    liam gotest $ docker run -it gotest    success!這不會(huì):    package main    import (            "archive/tar"            "fmt"    )    var _ = tar.TypeReg    func main() {            fmt.Println("success!")    }產(chǎn)生輸出:    liam gotest $ docker run -it gotest    standard_init_linux.go:207: exec user process caused "no such file or directory"這是我的 Dockerfile:    FROM scratch    WORKDIR /app    COPY . /app    CMD ["./test"]我在跑:go version go1.11.4 linux/amd64Docker version 18.09.1, build 4c52b90ubuntu 18.04LTS我將不勝感激任何建議。由 vishnu narayanan 解決:我用了`CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo test.go`構(gòu)建一個(gè)靜態(tài)可執(zhí)行文件,它成功了。
查看完整描述

1 回答

?
墨色風(fēng)雨

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

為什么 ?

這是因?yàn)槟J(rèn)go build行為。由于動(dòng)態(tài)鏈接,編譯后的二進(jìn)制文件仍在系統(tǒng)路徑中尋找?guī)臁?/p>

由于scratch是空的,二進(jìn)制文件無(wú)法找到系統(tǒng)庫(kù)并拋出錯(cuò)誤。

如何解決這個(gè)問(wèn)題?

修改構(gòu)建腳本以生成包含所有內(nèi)置庫(kù)的靜態(tài)編譯構(gòu)建。

CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .

將上述構(gòu)建的輸出二進(jìn)制文件用于 docker 容器。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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