Skip to content

node 项目在服务器的部署

1.node 项目部署的三个方法

1.重写 webpack 配置,把依赖打包进去,然后服务器运行 node main.js(针对 nest,因为 nest 默认是只会把 ts 转化为 js 而不作任何的依赖打包的)

2.将整个项目上传到服务器,在服务器打包,然后运行 node main.js

3.将整个项目上传到服务器,不打包,直接在服务器运行普通的启动命令

这样操作的主要原因:一般的 node 项目打包是不会带依赖的,都是需要服务器带有依赖才行!

4.docker 配置依赖环境:主要也是上传整个项目,然后靠 dockerfile 执行,接着构建镜像运行,主要起到一个隔离和持续运行的作用

2.宝塔 docker 部署项目的方法

使用 docker 的好处:不局限于系统环境对于 node 版本的限制:centos7.9 最多下载 16 版本的 node,完全不够用!!

(不需要:所以我们需要使用 docker 先拉取 node18 版本的镜像,然后根据这个镜像构建一个容器)

根据 dockerfile 构建我们自己的项目镜像!然后根据这个创建一个容器,然后在容器中运行我们的项目镜像!

注意:好像docker会自动寻找拉取node:18.19.1这个依赖,所以我们不用管,创建好的镜像就是自带这个node的!!!

image-20240405155442126

image-20240405155426640

注意:容器标签必须要写:写下面这个部分的内容就行

image-20240405161028818

比如 goodhaulbackend:1.0

image-20240405161930030

image-20240405161945133

image-20240405161956806

3.宝塔 webhook 与 Gitee 配置实现 GitOps

注意:将整个项目上传服务器是非常费劲的(因为文件太多上传太慢),每次上传也不方便,最好的是在 linux 安装一个 git 然后每次拉取最新代码就行了!然后自行 npm i(在 linux 下载也会快一些)

最佳实践:宝塔 webhook 与 Gitee 配置实现服务器的代码同步更新!也就是说我们只需要提交代码,服务器就会自动更新自动拉取最新的代码!

宝塔 webhook 与 Gitee 配置实现服务器的代码同步更新_萬博的博客-CSDN 博客

https://zhuanlan.zhihu.com/p/680260756

注意:linux 安装 git:yum -y install git

git --version

安装完成之后就可以 git clone 下载项目了

注意:大坑,宝塔面板不要设置为 https 访问的形式,否则 gitee 无法发送 webhook 请求!

webhook 的大概意思就是,我们 push 仓库到 gitee 之后,gitee 会给宝塔 webhook 发送请求,通知它我们更新了,这个时候宝塔的 webhook 就会自动拉取仓库,实现代码同步!

注意:这里必须选择签名秘钥才可以,然后 param 设置为 gitee 仓库简介里面的仓库名称即可!

image-20240405154557477

自动拉取成功:

image-20240405155107981

注意:虽然我们能够将 git 变为 ops 的,但是 docker 的部署运行我们暂时还不行,可能必须要用 jenkins 才可以