我有一個(gè)使用 revel 容器化在 docker 映像中構(gòu)建的簡(jiǎn)單站點(diǎn)。我正在嘗試在 Cloud Run 中運(yùn)行此映像。不幸的是,當(dāng)我轉(zhuǎn)到該站點(diǎn)的 URL 時(shí),我在瀏覽器中看到 502 和這條日志行2020/10/30 17:27:07 http: proxy error: dial tcp 0.0.0.0:16166: connect: connection refused我認(rèn)為它與端口有關(guān),但我嘗試將端口最初映射到 9898,但我仍然在日志行中看到一個(gè)隨機(jī)端口號(hào)。${PORT}目前,我已按照 GCP 文檔的建議將我的 revel 應(yīng)用程序中的端口設(shè)置為。我應(yīng)該提到我可以毫無(wú)問(wèn)題地在本地部署容器。Dockerfile:FROM golang:1.15 AS buildENV CGO_ENABLED 0ADD . /go/src/app# Install revel frameworkRUN go get -u github.com/revel/revelRUN go get -u github.com/revel/cmd/revel# Run revel appEXPOSE ${PORT}ENTRYPOINT revel run -a /go/src/app -p ${PORT} -m dev狂歡 app.conf 片段:# The IP address on which to listen.http.addr = 0.0.0.0# The port on which to listen.http.port = ${PORT}更新:建議使用硬編碼的 8080 端口,看看是否可行。我仍然看到 502。我嘗試再次在本地運(yùn)行它,看起來(lái) revel 試圖在一個(gè)端口上設(shè)置,然后在另一個(gè)端口上作為反向代理進(jìn)行偵聽(tīng)。因此,除非我認(rèn)為這可能是一個(gè)狂歡問(wèn)題,而不是 Cloud Run 問(wèn)題docker run --publish 8080:8080 appRevel executing: run a Revel applicationChanged detected, recompilingParsing packages, (may require download if not cached)... CompletedINFO 02:34:24 app run.go:34: Running revel serverINFO 02:34:24 app plugin.go:9: Go to /@tests to run the tests.Revel engine is listening on.. 0.0.0.0:44795Time to recompile 8.0340966sRevel proxy is listening, point your browser to : 8080注意最后一行Revel proxy is listening, point your browser to : 8080,但也Revel engine is listening on.. 0.0.0.0:44795
1 回答
湖上湖
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
因此,經(jīng)過(guò)進(jìn)一步調(diào)查和討論,當(dāng)您通過(guò)代理運(yùn)行狂歡應(yīng)用程序時(shí),似乎revel run是在隨機(jī)端口上設(shè)置的,而該連接是失敗的原因。此外,運(yùn)行 via 的最大好處revel run是已部署代碼的熱交換,這在已部署的上下文中是不必要的。所以這里的解決方案是通過(guò)構(gòu)建應(yīng)用程序revel build并以這種方式運(yùn)行該應(yīng)用程序,以便僅使用應(yīng)用程序端口進(jìn)行連接。
- 1 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
