将代码部署到服务器的几种方式
1.将代码部署到服务器,本质上就是将代码从一个地方(本地 / gitlab仓库)拷贝到服务器的指定目录。因此,要么人工手动拷贝,要么通过一些自动化的手段让机器自己拷贝。
2.通过 gitlab + jenkins 自动化部署
比较推荐在开发阶段使用这种方式。
具体的原理和如何使用参考:利用 gitlab+jenkins 进行自动构建+部署
如果是已经存在的老项目,参考上述 wiki 进行配置即可。
如果是新项目,推荐使用 CLI 工具来创建项目(使用 create-hobot-app 创建 web 项目),项目模板里已经配好了自动部署相关脚本,你只需要配置 jenkins job 和 gitlab webhook 即可。
3.使用 scp
a. scp 可以将文件或者文件夹从本机拷贝到远程机器上
scp -r ./dist/* [email protected]:directory
输入上述命令后,再输入user用户登录ip的密码即可。(如果想要避免每次输入密码,配置一下 ip 对应的服务器上的 .ssh/authorized_keys 即可)
4.使用 rz / sz
注意:mac 上如果想使用 rz / sz 需要做一点设置:https://github.com/mmastrac/iterm2-zmodem
a.在本机将要部署的代码压缩成一个zip
b.ssh 登录到目标服务器上
c.在目标服务器上执行 rz -bye 回车,会弹出一个文件选择对话框,选择刚才打包的zip,等待完成即可。
d.在目服务器上解压刚才上传的zip包到要部署的目录。
5.使用 git pull
这个方式不推荐,太非主流了。
这个方式是将服务器当成一个git客户端,提交代码到gitlab后,ssh登录到服务器到指定目录执行 git clone 或者 git pull 把代码拉下来。
而且react/webpack 项目我们不推荐将编译后的 dist 目录上传到 gitlab。可能一些 jquery 项目不需要编译,还可以使用这种方式。