当前位置: 首页 > Web前端 > HTML5

如何使用华为云一键构建、部署、发布前端和Node.js服务

时间:2023-04-05 17:58:51 HTML5

如何使用华为云服务一键搭建部署发布前端和Node.js服务搭建部署一直是一个非常繁琐的过程。作为开发,最怕遇到版本发布,尤其是前后端一起上线,项目又多的时候。比如你有10个项目,前后端同时发布,那么你需要合并代码,构建,重复很多动作。而且还需要关心build机的环境有没有变化?配置是否可以同时持有构建多个应用程序需要大量的手动操作,而且很难保证不出问题。如何解决这种情况?是否应该从技术角度考虑提高效率?如果我把所有的构建和发布都迁移到云端,我可以一键推送代码,然后构建就自动完成了。我只需要执行一条命令就可以完成部署,不需要关心机器配置和环境变化。我们的工作效率能不能大大提高?在我之前的构建发布过程中,我使用的是TravisCI,gitHub和docker-compose结合进行一键代码推送构建发布,但是有一个明显的问题,gitHub和Travis这两个平台是完全独立的,尤其是我的代码是托管在gitHub上,有时候访问速度很慢,而且很糟糕,没有在一个平台上形成完整的链接闭环。于是找了很多平台,最终发现华为云可以满足我的需求。它不仅可以托管代码,还可以有一个可配置的自动化构建过程。而且访问速度快,纯中文界面友好。创建一个新项目并迁移到华为云。像我们的前端和Node.js,有一些脚手架。关注工程配置的问题,华为云的开发者模块也提供了这个功能,可以选择自己想要的模板。像我选择的是React+express模板,大概10秒左右就可以生成。这个时候你就可以在我的模板产品中使用了,这个时候下载压缩包,解压运行下面的命令开始开发`npmruninstall-allnpmrundev`在新建项目的时候,我们可以选择上面的模式根据模板快速生成代码,但是今天我想把我的代码从gitHub迁移到华为云上托管,然后在华为云上完成整个开发过程的闭环。导入我的gitHub仓库代码到华为云主机,进入华为云devcloud模块,输入你要导入的gitHub仓库地址和账号密码。(如有必要),然后开始导入,这大约需要30秒。此时在本地生成gitssh,将公钥放在华为云上。我们此时可以点击代码仓库,可以看到仓库详情(纯中文界面,真的很友好)在本地使用如下命令命令完成克隆并启动`gitcloneremoteurlcdyourprojectNamenpminstallnpmrundev`上面已经完成代码迁移,我们的代码已经托管到华为云上了。为了完成整个研发流程的闭环,我们需要将构建、发布全部迁移到华为云鲲鹏服务器上,改变我的构建策略。我以前是基于gitHub、TravisCI和docker-compose完成一键推送代码,然后一键完成发布。现在想在华为云上实现一个自动化的构建过程,策略适配的难度极低,远超我的想象。我的项目是前端基于React,后端基于Node.jsexpress框架,和华为云的devstar的模板很像。如何设计这个任务流程?基于Project编写任务流,新建编译构建任务,编写任务流任务流,所谓任务流就是完成一个任务,然后进行下一个任务。华为云在这里比较贴心,根据不同的环境区分环境。与传统服务器不同,需要去安装docker、node.js等(PS:创建新任务后可以修改任务~)这里默认使用华为的镜像源仓库,解决了由于下载慢的问题to环境配置问题~任务流程怎么写?以我的一个数据网站项目为例,基于docker-composerelease,前后端打包在一个镜像中。第一,代码推送后,构建任务不一定要马上执行,我的推送次数可能会很频繁。这个时候我可以调整成一个定时任务,也可以限制写一个dockerfile的次数(真的很贴心)。这时候先写一个docker的dockerfile文件,基于Node.js12.16.3版本的镜像,指定端口`#RefertotheimageFROMnode:12.16.3执行命令,创建文件夹RUNmkdir-p/usr/wwwWORKDIR/usr/www复制。/usr/wwwRUNnpmrunbuildconfigureenvironmentvariablesENVHOST0.0.0.0ENVPORT8080defineprogramdefaultportEXPOSE8080runprogramcommandCMD["node","./server/index.js"]`此时,它可以想象,我们推送代码后(可以选择哪个分支),会根据配置自动构建,然后可以通过界面一键式或者借助docker-compose命令手动更新和发出三个简单的命令来完成docker-image生产和推送(具体参数参考提示)先登录docker,然后构建打包镜像,最后推送完成构建步骤。我们本地完全不知情~更不用考虑配置和环境问题。这时候,我们手动触发构建任务(像我们公司的项目很大,一台4核8G的机器可能无法同时承载几个项目,这里不用担心)等待一段时间后,发现命令执行完成,docker镜像已经发布。发布的方式有两种:通过ssh连接到华为云服务器,执行准备好的docker-compose文件,通过接口调用,带token(只有授权人员才能发布),执行docker-compose命令,达到目的出版。我们关注第一种方法。通过ssh连接华为云鲲鹏服务器``输入用户和ip地址后,ssh连接成功,docker-compose文件写入`version:"3.7"services:redis:image:redis:3container_name:redis主机名:redis命令:redis-server/usr/local/etc/redis/redis.conf--requirepasshuaweiapp666卷:-./redis/redis.conf:/usr/local/etc/redis/redis.conf端口:wei-"6379:6379"apphuaw:image:jinjietan/huaweiapp:latestports:-"8080:8080"restart:on-failure`执行拉取镜像的命令docker-composepull拉取完成后运行docker-composedocker-composeup-d启动成功,输入域名,可以访问我的网站,完成整个开发建设过程的迁移和闭环,只用了不到一个小时的时间,从角度感受了华为云开发者,一键生成项目模板,定时构建任务,任务流定制搞定这些,非常人性化,大大降低了开发和运维的门槛,形成了整个研发和建设过程的闭环。我们公司也在准备采购和迁移华为云产品。所有的托管、构建和发布都放在云端,完成闭环。您可以快速将您的代码托管、构建和发布迁移到华为云鲲鹏服务器