部署应用
创建 deploy
在项目中创建 deploy 分支
定义编译命令
在项目目录中:
1 | npm install rimraf --save-dev //安装这个包,这个包带了一个命令行工具可以删除掉指定的目录 |
在项目根目录创建一个配置文件 tsconfig.build.json,这个配置文件是给生产环境准备的:
1 | { |
打开 package.json,在 script 中配置命令:
1 | "prebuild":"rimraf dist", //删除dist,这个命令会在执行build命令之前自动执行 |
迁移数据库到生产环境
- 打开 tableplus 这个数据库客户端软件,连接到本地运行的数据库服务,选中所有数据表,右键-export 导出,在 sql 选项卡中只勾选 include table structure 这个选项(只包含表格结构),再点击 export,选择一个位置,保存。
- 打开生产环境的数据服务连接,右键-import-from sql dump,找到刚才导出的文件,点击 import 确定导入,现在生产环境的数据库中,就会出现应用需要的数据表了。
把本地 master 分支推送到远程仓库上
应用的代码可以通过 github 部署到远程仓库上。
1 | git checkout develop |
在远程仓库添加部署秘钥
在终端,用 ssl 远程登录到服务器
1 | ssh chenxunan@114.114.114.114 // 远程登录服务器 |
在生产环境上部署与运行应用
1 | git clone git项目地址 //在服务器根目录中克隆项目 |
完成后要在项目根目录下面创建一个环境变量文件,然后将项目的环境变量文件根据实际情况修改后粘贴进来。然后把本地的环境变量文件恢复成修改前的样子。
1 | vi .env // 进入编辑模式,粘贴,esc,:wq |
想查看应用输出到控制台上的东西可以使用
1 | pm2 log xb2-node |
然后可以测试一下相关的接口是否正常可用。
修改 nginx 的请求主体数据不超过 1m 的问题
1 | sudo vi /etc/nginx/nginx.conf |
在 http 区块里可以添加一个配置,按 i 进入编辑输入,编辑完成后 esc,:wq。这个也可以放在特定的 server 里,影响单独服务,在 http 中会影响全部。
1 | client_max_body_size 512m; |
应用提升文件夹不存在的时候:
1 | cd /mnt/xb2-node |