Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 在google应用程序引擎上部署Haskell yesod docker容器_Google App Engine_Google Cloud Platform_Yesod - Fatal编程技术网

Google app engine 在google应用程序引擎上部署Haskell yesod docker容器

Google app engine 在google应用程序引擎上部署Haskell yesod docker容器,google-app-engine,google-cloud-platform,yesod,Google App Engine,Google Cloud Platform,Yesod,我正试图在谷歌应用程序引擎上上传一个yesod Docker容器。源代码是,Docker图像是 我按照中的文档进行了操作,当调用gcloud app deploy时,应用程序在增加构建超时后构建良好,但容器在尝试启动时未执行就绪检查,或显示以下超时消息: ERROR: (gcloud.app.deploy) Operation [apps/meeshkan-github-webhook-router/operations/xxxx-xxxx-xxxx] timed out. This opera

我正试图在谷歌应用程序引擎上上传一个yesod Docker容器。源代码是,Docker图像是

我按照中的文档进行了操作,当调用
gcloud app deploy
时,应用程序在增加构建超时后构建良好,但容器在尝试启动时未执行就绪检查,或显示以下超时消息:

ERROR: (gcloud.app.deploy) Operation [apps/meeshkan-github-webhook-router/operations/xxxx-xxxx-xxxx] timed out. This operation may still be underway.
我尝试过几种方法,包括手动准备就绪检查、创建
/\u ah/health
端点,以及将准备就绪检查的超时时间一直增加到1799秒,但这些操作似乎都不起作用

一个问题可能是容器的大小(它是3.2gb),我可以尝试删减它,但只有在有人确认容器大小是导致部署问题的一个因素时,我才会这样做。除此之外,我不确定是什么导致了这次失败。docker图像在本地机器上启动良好


提前感谢您的帮助和建议

问题是,因为我是在Windows上构建的,所以使用Windows上的Docker Desktop构建的图像自动授予所有shell脚本可执行权限,而Linux上的Docker需要授予shell脚本可执行权限。通过将此行添加到我的Dockerfile:

RUN chmod +x /usr/src/app/run.sh

一切都很顺利

我克隆了您共享的GIT存储库,将构建超时更改为30分钟,并在部署过程中显示以下错误消息:
错误:(gcloud.app.deploy)错误响应:[4]您的部署未能在分配的时间内恢复正常,因此被回滚。如果您认为这是一个错误,请尝试调整“准备就绪检查”部分中的“应用程序启动超时秒”设置。
我对Haskell一点也不熟悉,无法在这方面为您提供进一步的指导,但是你在应用程序中实现的方式有一个问题,因为通过检查日志,我注意到在日志中有很多503条错误消息用于就绪检查。谢谢@DanielOcando!我尝试过更改
应用程序的启动超时秒,但结果没有改变。我阅读了您提供的文档,但我不确定如何实现分割健康检查。我从文件中了解到,无需实施任何措施,检查是自动的。您能告诉我如何使用CLI获取这些日志吗?我可以深入研究503,看看能不能修好。谢谢你的帮助!请注意,您的应用程序实际上需要引入以下两个处理程序:
/liveness\u check
/readiness\u check
,这两个处理程序需要返回
200
响应。在
app.yaml
级别上,您需要包含相关信息。关于如何在应用程序上实现处理程序的详细信息,我认为您可以参考。最后,请注意,使用/_ah/health路径的运行状况检查现在已被弃用,您需要遵循迁移的这一部分,了解如何实现拆分运行状况检查。