跳到主要内容

Nest

Nest 是一个基于 TypeScript/Node.js 的企业级后端框架,采用模块化设计,融合了 OOP(面向对象)、FP(函数式)和微服务架构。它底层支持 Express/Fastify,提供依赖注入、装饰器路由、GraphQL 集成等特性,适合构建高效、可维护的服务器端应用,尤其契合全栈 TypeScript 开发。

本指南介绍如何通过多种方式在腾讯云托管上部署示例 Nest 应用程序:

创建 Nest 应用

Note: 如果你在本地已经有 Nest 应用,客户忽略该步骤。

要创建 Nest 应用程序,你确保机器上安装 Node 和 NestJS。

在终端中运行以下命令来创建新的 Nest 应用:

nest new cloudrun-nest

目录中将为你创建一个新的 Nest 应用Nest

在本地运行 Nest 应用

通过运行以下命令在本地启动应用程序:

npm run start

启动浏览器访问http://localhost:3000查看返回结果。

配置 Dockerfile

在 Nest 应用程序的跟目录中创建一个 Dockerfile 文件, 内容如下:

FROM alpine:latest

# 安装依赖包,如需其他依赖包,请到alpine依赖包管理(https://pkgs.alpinelinux.org/packages?name=php8*imagick*&branch=v3.13)查找。
# 选用国内镜像源以提高下载速度
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tencent.com/g' /etc/apk/repositories \
&& apk add --update --no-cache nodejs npm

# 容器默认时区为UTC,如需使用上海时间请启用以下时区设置命令
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone

# 使用 HTTPS 协议访问容器云调用证书安装
RUN apk add ca-certificates

# # 指定工作目录
WORKDIR /app

# 拷贝包管理文件
COPY package*.json /app/

# npm 源,选用国内镜像源以提高下载速度
RUN npm config set registry https://mirrors.cloud.tencent.com/npm/
# RUN npm config set registry https://registry.npm.taobao.org/

# npm 安装依赖
RUN npm install

# 将当前目录(dockerfile所在目录)下所有文件都拷贝到工作目录下(.dockerignore中文件除外)
COPY . /app

# 执行启动命令
# 写多行独立的CMD命令是错误写法!只有最后一行CMD命令会被执行,之前的都会被忽略,导致业务报错。
# 请参考[Docker官方文档之CMD命令](https://docs.docker.com/engine/reference/builder/#cmd)
CMD ["npm", "start"]

通过上面更改,你的 nestjs 程序将可以部署到腾讯云托管了!

部署到云托管

云托管提供了多种部署方式来部署你的应用:

控制台部署

打开腾讯云托管, 点击通过本地代码部署 -> 填写服务名称 -> 部署方式选择上传代码包 -> 代码包类型选择文件夹 -> 选择 cloudrun-nest 目录进行上传 -> 端口填写 3000 -> 点击创建并等待创建完成即可。

通过 cli 部署

如果您已经安装了 CloudBase CLI,可以在项目目录下使用以下命令将应用部署到 CloudBase 云托管:

tcb cloudrun deploy -p 3000

输入环境和服务名称后,CLI 会自动打包应用像并部署到云托管。

除了手动部署外,你也可以一键安装上述应用:

一键从模版部署

一键从 github 部署