docker - 如何将 PORT 的 Google Cloud 环境变量传递给 Play Framework 服务器
问题描述
我已经开始使用Google Cloud Platform
,所以我可以部署我的Scala Play Framework
项目。我正在使用docker
创建一个docker image
推送到 Google Cloud Platform 并使用Cloud Run
. docker 映像在我的本地计算机上成功运行,但是当我尝试在 google 上部署它时,我收到此错误:
Cloud Run 错误:容器无法启动。无法启动并侦听 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}
我所做的另一个尝试是转到我的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 Run 中使用环境变量的更多信息:https ://cloud.google.com/run/docs/configuring/environment-variables
希望这可以帮助。
推荐阅读
- react-native - 如何解决 ESLint 错误无法解析模块“react-native”的路径
- c# - 访问 Int 变量时 SSIS 获取异常
- mongodb - 如何在 MongoDB Stitch Functions 代码中使用 Object.bsonsize?
- excel - How to get different years for a slicer
- informatica - 如何从来自源的一组日期中选择最大日期,除了高日期?
- wordpress - 将另一个 Wordpress 数据库中的帖子添加到 WP Query
- python - 在数据帧上使用 groupby 进行动态移位
- azure-log-analytics - 当 Linux 服务停止时,如何在 OMS 中创建警报?
- mysql - 获取两个日期范围之间的缺失日期
- npm - 代替 npm 使用老派有什么缺点吗