我已经开始使用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}
,但也没有任何影响,此错误不断弹出。
您有工作吗?预先谢谢!
您可以使用以下命令在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
希望这会有所帮助。