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