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

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

如何正確配置 Dockerfile 以在 Google Cloud Run 上運(yùn)行?

如何正確配置 Dockerfile 以在 Google Cloud Run 上運(yùn)行?

Go
開心每一天1111 2023-06-19 13:49:22
我正在嘗試在 Google Cloud Run 上使用 Docker 運(yùn)行 Go 應(yīng)用程序,但出現(xiàn)此錯誤:Container failed to start. Failed to start and then listen on the port defined by the PORT environment variable. Logs for this revision might contain more information.我將我的端口修復(fù)為8080文檔中所述,但我認(rèn)為我的 Dockerfile 不正確。有誰知道我錯過了什么?FROM golang:1.12-alpineRUN apk upgrade -U \  && apk add \  ca-certificates \  git \  libva-intel-driver \  make \  && rm -rf /var/cache/*ENV GOOS linuxENV GOARCH amd64ENV CGO_ENABLED=0ENV GOFLAGS "-ldflags=-w -ldflags=-s"ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATHRUN echo $PATHRUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"RUN go get -u github.com/cespare/reflex# RUN reflex -h # Setup modules after reflex installENV GO111MODULE=on \  GOFLAGS="$GOFLAGS -mod=vendor"WORKDIR /go/src/bitbucket.org/team/app/COPY . .CMD [ "go", "run", "cmd/main.go" ]
查看完整描述

2 回答

?
繁花如伊

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

Dockerfile 不會讓您的應(yīng)用程序監(jiān)聽特定的端口號。

Dockerfile 中的指令EXPOSE純粹是一個文檔,不執(zhí)行任何功能。

Go 應(yīng)用程序有 2 個選項:

  1. 只需重構(gòu)您的代碼以讀取PORTenv 變量:os.Getenv("PORT")并在您開始的 HTTP 服務(wù)器地址上使用它:

    port := os.Getenv("PORT")
    http.ListenAndServe(":"+port)
  2. -port在 Dockerfile 中的應(yīng)用程序入口點(diǎn)期間創(chuàng)建一個標(biāo)志并讀取它:

    例如,如果您可以go run main.go -port=8080工作,請將您的 dockerfile 更改為:

    exec go run main.go -port=$PORT

這些會讓你得到你想要的。

理想情況下,您不應(yīng)go run在容器內(nèi)使用。做就是了:

RUN go build -o /bin/my-app ./my/pkg
ENTRYPOINT /bin/my-app

編譯一個 Go 程序并直接使用它。否則,每次Cloud Run啟動您的容器時,您都會從頭開始重新編譯它,這并不快,這會增加您的冷啟動時間。


除了這些,您的 dockerfile 中似乎還有很多不一致之處。你設(shè)置了很多像 GOOS GOARCH 這樣的 Go 環(huán)境變量,但你實際上并沒有設(shè)置go build你的應(yīng)用程序(go run我相信這是一個即時編譯并且沒有考慮 GOFLAGS 中的鏈接器標(biāo)志)。查看示例 Go dockerfiles 以更好地了解如何編寫慣用的 Go dockerfiles。


查看完整回答
反對 回復(fù) 2023-06-19
?
慕姐4208626

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

看來您EXPOSE的 Dockerfile 中缺少了。

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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