部署失败相关
本地运行正常,部署到云托管后却部署失败?
本地调试请尽量基于本地 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 监听端口后,重新部署服务。