有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

基本概念相关

云托管 CloudBase Run(腾讯云托管)和微信云托管的关系是什么?

微信云托管 整合了多种腾讯云的底层资源(腾讯云托管、腾讯云 TDSQL- C、腾讯云 COS 等),加上微信生态的能力和优势,为开发者提供了综合的一站式后端解决方案。 微信云托管中的底层容器能力来自腾讯云托管,但具备了更多微信的业务属性。 开发微信小程序和公众号后端,建议使用微信云托管;开发与微信生态无关的应用后端,建议使用腾讯云托管。

云托管是否提供 DDoS 防护服务?

云托管目前不提供额外 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.ClusterInAbnormalStat][err=cloudrun cluster state is invalid(cluster state is deleted)]”如何处理?

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

遇到报错信息“ErrImagePull”如何处理?

未开启容器镜像服务访问管理,无法从仓库中拉取镜像。请到容器镜像服务访问管理 进行配置。

构建失败相关

构建阶段问题多数为 docker 报错,绝大部分是因为没有正确配置 Dockerfile。 可参见 优化容器镜像。或在网上搜索 docker 相关解决方案及教程。

遇到报错信息“network connection aborted.”如何处理?

因为访问国外网络不稳定的不可抗力因素,建议尽量选用国内站作为镜像源下载依赖和扩展。

缺少依赖报错如何处理?

例如:java.lang.NoClassDefFoundError: Could not initialize class xxx

Dockerfile 中缺少对应的依赖安装命令。
建议优先换用更完整的构建基础镜像而非直接增加依赖安装命令(RUN apk xxx),更加简单方便,且可以提高构建速度。 请到 dockerhub 官方仓库 自行选择合适的基础镜像(默认已包含了所有您需要的依赖),然后在 Dockerfile 中替换“FROM xxxxx as build” 命令。

遇到报错信息“xxxxxx: no such file or directory”如何处理?

确保代码仓库/代码包中确实存在该文件且路径正确。
确保 .gitignore 或者 .dockerignore 中,没有包含这个文件。如果包含将会被构建忽略。去除即可。
确保 Dockerfile 中的 COPY 命令,拷贝文件的时候没有修改原有的文件路径。

无报错日志显示空白该如何处理?

大概率是构建超时(> 10分钟)。请参见 优化容器镜像,提高构建速度,防止超时。