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

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

編譯靜態(tài) Go 二進(jìn)制文件,并在單獨(dú)的文件中使用調(diào)試符號(hào)?

編譯靜態(tài) Go 二進(jìn)制文件,并在單獨(dú)的文件中使用調(diào)試符號(hào)?

Go
猛跑小豬 2022-08-30 21:43:52
我不記得我在哪里看到它,我以為它是在Datadog或NewRelic上,或者CloudFlare上?但是我記得有人提到Golang,他們?cè)谏a(chǎn)中運(yùn)行發(fā)布二進(jìn)制文件(當(dāng)然),在他們的Docker容器中,它們還包括一個(gè)單獨(dú)的文件,其中包含調(diào)試符號(hào),以防萬(wàn)一發(fā)生崩潰,以便能夠看到發(fā)生了什么。背景我正在使用這樣的Dockerfile在Docker中構(gòu)建和運(yùn)行:# do all of our docker building in one imageFROM golang:latest as buildWORKDIR /usr/src/apiCOPY go.mod go.sum ./RUN go mod downloadCOPY . .# build the application with relevant flags to make it completely self-contained for a scratch containerRUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-s" -a -installsuffix cgo -o app# and then copy the built binary to an empty imageFROM ubuntu:latestCOPY --from=build /usr/src/api/app /COPY --from=build /usr/src/api/config.defaults.json /config.jsonCOPY --from=build /usr/src/api/logo.png /# default to running in a dev environmentENV ENV=devEXPOSE 8080ENTRYPOINT ["/bin/bash"]如果我不使用上面的標(biāo)志,二進(jìn)制文件將無(wú)法在和基本映像中執(zhí)行:alpinescratchstandard_init_linux.go:219: exec user process caused: no such file or directory運(yùn)行此程序只是工作,因此上面的編譯標(biāo)志似乎可以解決 和 的問題。ubuntu:latestalpinescratch問題考慮到此環(huán)境,是否可以將調(diào)試符號(hào)發(fā)出到單獨(dú)的文件中,以便與 Docker 映像中的靜態(tài)二進(jìn)制文件一起存在?go build
查看完整描述

2 回答

?
慕姐8265434

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

在使用 CGO_ENABLED=0 進(jìn)行構(gòu)建時(shí),您不需要使用 “ -a -installsendfix cgo” 標(biāo)志 -- 只需設(shè)置環(huán)境變量即可解決問題。


您正在使用“-ldflags -s”進(jìn)行構(gòu)建,這將去除所有調(diào)試符號(hào)和ELF符號(hào)表信息。與其這樣做,不如進(jìn)行常規(guī)構(gòu)建,存檔該可執(zhí)行文件(以防以后需要符號(hào)),然后使用 strip 刪除符號(hào)。例如:


 $ CGO_ENABLED=0 GOOS=linux go build -o app.withsymbols

 $ cp app.withsymbols /my/archive/for/debugging/production/issues

 $ strip app.withsymbols -o app.stripped

 $ cp app.stripped /production/bin

這應(yīng)該給你你所要求的行為(例如,一個(gè)小的生產(chǎn)二進(jìn)制文件,但也是一個(gè)備份二進(jìn)制文件,其中包含用于調(diào)試生產(chǎn)中問題的符號(hào))。


查看完整回答
反對(duì) 回復(fù) 2022-08-30
?
侃侃無(wú)極

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

使用標(biāo)志到 。這是你需要的嗎?go tool compile-EDebug symbol export

$ go tool compile -E *.go

類型:

go tool compile

以獲取有關(guān)如何使用它以及可用選項(xiàng)的更多幫助。

參考:

  1. https://golang.org/cmd/compile/


查看完整回答
反對(duì) 回復(fù) 2022-08-30
  • 2 回答
  • 0 關(guān)注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報(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)