如何将PORT的Google Cloud环境变量传递到Play Framework服务器

问题描述 投票:0回答:1

我已经开始使用Google Cloud Platform,因此可以部署Scala Play Framework项目。我正在使用docker创建一个docker image,并将其推送到Google Cloud Platform并使用Cloud Run运行它。 docker镜像在本地计算机上成功运行,但是当我尝试在google上部署它时,出现此错误:

云运行错误:容器无法启动。无法启动,然后侦听PORT环境变量定义的端口。日志该修订版可能包含更多信息。

我已经阅读了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},但也没有任何影响,此错误不断弹出。

您有工作吗?预先谢谢!

docker google-cloud-platform playframework dockerfile
1个回答
0
投票

您可以使用以下命令在Cloud Run中传递环境变量:

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

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.