如何将 PORT 的 Google 云环境变量传递给 Play Framework 服务器
How to pass PORT's Google Cloud environment variable to Play Framework server
我已经开始使用 Google Cloud Platform
,所以我可以部署我的 Scala Play Framework
项目。我正在使用 docker
创建一个 docker image
,我将其推送到 Google Cloud Platform 并使用 Cloud Run
对其进行 运行 设置。 docker 图像在我的本地机器上 运行 成功,但是当我尝试在 google 上部署它时,出现此错误:
Cloud Run error: 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.
我已阅读 Play 2.7's
文档并且我找到了这个 Dockerfile:
FROM aa8y/sbt:0.13.15
COPY ./target/universal/scalatry-1.0.zip .
RUN unzip scalatry-1.0.zip
COPY ./main_route .
CMD scalatry-1.0/bin/scalatry -Dhttp.port=${PORT}
所以基本上,我正在尝试 运行 压缩项目文件(我使用 scala dist
创建的)和 运行 /bin/scalatry
上的可执行文件通过传递${PORT}
变量将在 运行 项目在 google 上传递。这似乎不起作用。
我做的另一个尝试是转到我的 application.conf
文件并添加:
play.server.http.port = ${PORT}
但也没有任何影响,这个错误一直弹出。
你有什么解决办法吗?提前致谢!
您可以使用以下命令在 Cloud 运行 中传递环境变量:
gcloud run deploy [SERVICE] --image gcr.io/[PROJECT-ID]/[IMAGE] --update-env-vars KEY1=VALUE1,KEY2=VALUE2
所以你会运行像
gcloud run deploy [YOUR-SERVICE-NAME] --image gcr.io/[PROJECT-ID]/[DOCKER-IMAGE] --update-env-vars PORT=PORTNUMBER
您可以在此处阅读有关如何在 CLoud 运行 中使用环境变量的更多信息:https://cloud.google.com/run/docs/configuring/environment-variables
希望对您有所帮助。
我已经开始使用 Google Cloud Platform
,所以我可以部署我的 Scala Play Framework
项目。我正在使用 docker
创建一个 docker image
,我将其推送到 Google Cloud Platform 并使用 Cloud Run
对其进行 运行 设置。 docker 图像在我的本地机器上 运行 成功,但是当我尝试在 google 上部署它时,出现此错误:
Cloud Run error: 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.
我已阅读 Play 2.7's
文档并且我找到了这个 Dockerfile:
FROM aa8y/sbt:0.13.15
COPY ./target/universal/scalatry-1.0.zip .
RUN unzip scalatry-1.0.zip
COPY ./main_route .
CMD scalatry-1.0/bin/scalatry -Dhttp.port=${PORT}
所以基本上,我正在尝试 运行 压缩项目文件(我使用 scala dist
创建的)和 运行 /bin/scalatry
上的可执行文件通过传递${PORT}
变量将在 运行 项目在 google 上传递。这似乎不起作用。
我做的另一个尝试是转到我的 application.conf
文件并添加:
play.server.http.port = ${PORT}
但也没有任何影响,这个错误一直弹出。
你有什么解决办法吗?提前致谢!
您可以使用以下命令在 Cloud 运行 中传递环境变量:
gcloud run deploy [SERVICE] --image gcr.io/[PROJECT-ID]/[IMAGE] --update-env-vars KEY1=VALUE1,KEY2=VALUE2
所以你会运行像
gcloud run deploy [YOUR-SERVICE-NAME] --image gcr.io/[PROJECT-ID]/[DOCKER-IMAGE] --update-env-vars PORT=PORTNUMBER
您可以在此处阅读有关如何在 CLoud 运行 中使用环境变量的更多信息:https://cloud.google.com/run/docs/configuring/environment-variables
希望对您有所帮助。