前言
前段时间由于项目需求总结了Azure上的Local Git部署方式,但是也不是每个项目都适合这种方式。不同项目有自己的特点,需要使用不同的不是方式。好在Azure App Service 提供了多种内置的部署方式很App的运行方式。
这次要使用的就是使用压缩包的形式进行部署,代码是React前端项目。
使用Local Git方式部署失败
那至于为什么不使用Local Git部署方式 呢?主要还是这里面也有很多坑,之前使用的Local Git方式部署的是.net core的项目,可能是这东西是微软出的原因,App Service 对其支持特别好,只要把代码push上去,它就能自动的帮你编译和部署。
但是当我用同样的方式部署部署的时候总是失败,而且耗时很长。后来又通过.deployment 文件设置了自定义部署,但是仍然不行,各种出错。所以期待有高手过来指导一下。
Local Git部署-死。
使用FTP方式部署
在折腾了一圈Local Git方式部署失败之后,尝试转换下方向。把目标对准了FTP方式部署,为啥呢?因为之前发现在服务器上build+deploy没办法一气呵成,尤其是build的时候各种出错。即使解决了对应的错误,又出了内存不足的错误,所以相对来讲部署质量没办法控制。
而看到微软官方文档上有FTP部署的方式,那么是不是可以把build放到本地,然后直接把build好的文件直接上传到服务器呢?因为这样的话就能创建一个本地的脚本,每次部署的时候只需要运行一下这个脚本就行了,也省了不少事。
结果折腾了一圈下来还是有问题。
一开始使用PowerShell的module PSFTP来上传build好的文件,但是最后发现有部分文件能上传上去,有部分不能上传。然后使用FTP客户端又试了几遍,还是不行,FTP客户端显示部分文件被占用。手动停掉App Service之后,可以上传,估计是App Service在运行的时候把部分文件占用了的原因。
然后尝试在脚本中加入