在谷歌应用引擎上部署Haskell yesod docker容器。

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

我正试图在Google App Engine上上传一个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.

我试着做了一些实验,包括手动检查准备状态,创建一个新的容器 /_ah/health 端点,并将就绪检查的超时时间一直增加到 1799 秒,但这些操作似乎都不起作用。

其中一个问题可能是容器的大小(它是3.2gb),我可以尝试将其修剪下来,但只有当有人能够确认容器大小是导致部署问题的因素时,我才会这样做。除此之外,我不知道是什么原因导致了这个失败。docker镜像在我们的本地机器上启动正常。

预先感谢您的帮助和建议

google-app-engine google-cloud-platform yesod
1个回答
1
投票

问题原来是,因为我是在Windows上构建的,在Windows上使用Docker Desktop构建的镜像自动给了所有shell脚本可执行的权限,而Linux上的Docker需要给shell脚本可执行的权限。通过在我的Dockerfile中添加这一行。

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

一切都很顺利!

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