基本概念相关
云托管 CloudBase Run(腾讯云托管)和微信云托管的关系是什么?
微信云托管 整合了多种腾讯云的底层资源(腾讯云托管、腾讯云 TDSQL- C、腾讯云 COS 等),加上微信生态的能力和优势,为开发者提供了综合的一站式后端解决方案。 微信云托管中的底层容器能力来自腾讯云托管,但具备了更多微信的业务属性。
开发微信小程序和公众号后端,建议使用微信云托管;开发与微信生态无关的应用后端,建议使用腾讯云托管。
云托管是否提供 DDoS 防护服务?
部署失败相关
本地运行正常,部署到云托管后却部署失败?
本地调试请尽量基于本地 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)]”如何处理?
遇到报错信息“ErrImagePull”如何处理?
构建失败相关
遇到报错信息“network connection aborted.”如何处理?
因为访问国外网络不稳定的不可抗力因素,建议尽量选用国内站作为镜像源下载依赖和扩展。
缺少依赖报错如何处理?
例如:java.lang.NoClassDefFoundError: Could not initialize class xxx
Dockerfile 中缺少对应的依赖安装命令。
建议优先换用更完整的构建基础镜像而非直接增加依赖安装命令(RUN apk xxx),更加简单方便,且可以提高构建速度。
请到 GitHub-Containers 的 dockerhub 官方仓库 自行选择合适的基础镜像(默认已包含了所有您需要的依赖),然后在 Dockerfile 中替换“FROM xxxxx as build” 命令。
遇到报错信息“xxxxxx: no such file or directory”如何处理?
确保代码仓库/代码包中确实存在该文件且路径正确。
确保
.gitignore
或者 .dockerignore
中,没有包含这个文件。如果包含将会被构建忽略。去除即可。确保 Dockerfile 中的 COPY 命令,拷贝文件的时候没有修改原有的文件路径。