nestjs 项目部署记录

nestjs 项目部署记录

本次部署nestjs 项目在腾讯云上,采用docker的方式部署, 因为机器性能太差, 无法在机器上打包, 所以直接使用docker 。只需要下载docker镜像就行了

问题1 - 无法连接上redis

由于使用的是docker容器, 需要与redis容器进行通信, 那么这配置redis host 的时候需要通过容器网络名称进行连接,在打包运行时发现无法连接上redis

ZfhgoH image-20250308213130861 .png

排查步骤

配置文件里面写入的是redis ,为什么打印出来是127.0.0.1, 在redisModule.forRootAsync 里面打印发现没有问题那就是nestjs-redis库没错,出错的是底层的ioredis模块。网上搜索结果无望,在ioredis进行debug,发现没有传入

  • 配置文件里面写入的是redis ,为什么打印出来是127.0.0.1, 在redisModule.forRootAsync 里面打印发现没有问题
  • 那就是nestjs-redis库没错,出错的是底层的ioredis模块。网上搜索结果无望,
  • 在ioredis进行debug,发现没有传入任何参数

DhsVxq image-20250308213816926 .png

那问题就是出现在@liaoliaots/nestjs-redis'模块了,查阅使用文档发现,config 需要用一个对象包裹

  • 那问题就是出现在@liaoliaots/nestjs-redis'模块了,查阅使用文档发现,config 需要用一个对象包裹
1
2
3
4
5
6
7
8
9
RedisModule.forRootAsync({
useFactory(configService: ConfigService) {
const config = configService.get('redis');
return {
config,
};
},
inject: [ConfigService],
}),