跳到主要内容

部署失败相关

本地运行正常,部署到云托管后却部署失败?

本地调试请尽量基于本地 Docker 进行,如果本地开发调试未基于 Docker,直接转到云托管部署时可能遇到以下情况:

  • 本地运行的时候,各种依赖组件、扩展在本地都是齐全的,但是没有在 Dockerfile 正确添加依赖安装命令,所以本地运行时不缺依赖没问题,部署到云托管上时就会因为缺乏依赖导致报错。
  • 本地运行的时候,连接的是本地数据库(地址为本机 IP 或 localhost),部署到云托管上时没有将数据库地址改为云上的数据库地址。导致因为数据库无法连接而部署失败。
  • 本地使用的运行时环境(JDK/python 版本等),与 Dockerfile 中定义的运行时环境不一致。

遇到报错信息“Readiness probe failed: dial tcp xx.xx.xx.xx:xxx: connect: connection refused”如何处理?

无法通过健康检查/端口调用不通。

  • 服务启动正常,但是端口填写错误,真实端口与发布时填写端口不符,导致系统误认为部署失败。
  • 服务启动成功,但反复重启,进程不稳定,导致端口无法稳定调通,无法通过健康检查。请自行结合日志排查代码问题,或考虑是否因为所选容器规格过小导致内存 OOM。
  • 如果您的 Dockerfile 中包含了多行独立的 CMD 命令,请注意这是错误的写法,只有最后一行 CMD 命令会被执行,之前的都会被忽略,导致业务报错。请参见 Docker 官方文档之 CMD 命令。

部署失败但看业务日志已经在正常运行?

检查服务设置中端口与真实项目端口是否一致。如果服务启动正常,但是端口填写错误,真实端口与发布时填写端口不符,会导致系统误认为部署失败,调用服务也会报错。

遇到报错信息“check pod status is not ok”如何处理?

  • 服务因代码原因反复重启,状态不稳定。请自行排查代码问题。
  • 若服务并未反复重启,请提工单联系我们排查。

遇到报错信息“Back-off restarting failed container”如何处理?

代码原因导致服务启动失败,请借助服务日志自行排查代码问题。没有采集到服务日志,请检查服务的日志采集路径是否配置正确。

为什么部署 eggjs 服务,运行 npm run start 不停重复启动?

需要去掉进程守护参数 --daemon。

  • 更改前:"start": "egg-scripts start --daemon --title=node-server",
  • 更改后:"start": "egg-scripts start --title=node-server"

为什么 Dockerfile 中引用了环境变量不生效?

构建或部署阶段,服务还未就绪,此时无法引用环境变量。

Dockerfile 中引用了 MySQL/Redis 等其他云产品的内网地址不生效?

构建/部署阶段,服务还未就绪,此时无法通过内网地址访问其他云产品。

遇到报错信息“err=[ResourceUnavailable.ClusterInAbnormalState][err=cloudrun cluster state is invalid(cluster state is deleted)]”如何处理?

底层异常,请提工单联系我们处理。

小程序内嵌 webview 的方式,是否支持云托管内网地址调用?

不支持,小程序的客户端内网和云托管服务端内网不是一个网络空间,不能相互调用。

流水线执行正常,但是服务无法启动如何自行排查?

  • 查看服务启动日志是否有明显报错
  • 客户可在本地使用 docker 部署验证程序启动是否有问题

访问服务报错 CERTIFICATE_VERIFY_FAILED

参考 使用注意事项,需要客户服务Dockerfile、客户代码中信任证书

本地监听 127.0.0.1:80 服务正常,部署到云托管无法启动

修改 0.0.0.0:80 监听端口后,重新部署服务。