10
个项目,先后端都要同时发布,那么就须要屡次合并代码、构建,重复不少动做..并且还要去关心构建机器环境是否是变了?配置是否能扛住同时构建多个应用,人为的操做次数多了,就很难保证万无一失push
代码,而后自动完成构建,我只要执行一个命令就能够完成部署,又不须要关心机器配置和环境变化,那咱们的工做效率是否是能够大大提高?Travis CI
和gitHub
以及docker-compose
结合进行一键代码push
构建发布gitHub
和Travis
这两个平台是彻底独立的,特别是我代码托管在gitHub
上,有时候访问速度还很慢,更要命的是没有在一个平台上造成完整的链路闭环华为云
能够知足个人需求,既能够代码托管,也有可配置的自动化构建流程,并且访问速度快,纯中文界面友好Node.js
都是有一些脚手架,例如React
这种框架,就有不少脚手架能够一键生成项目模板,让你再也不关心工程化配置的问题,华为云的developer
模块也提供了这个功能React
+express
模板,10秒钟左右就生成好了,此时就能够在个人模板产物中看`npm run install-all
npm run dev
`前端
gitHub
迁移到华为云上托管,而后在华为云上完成整个开发流程的闭环gitHub
仓库代码导入到华为云托管devcloud
模块,输入想要导入的gitHub
仓库地址和帐号密码(若是须要),而后开始导入,大约耗时30S
git ssh
,将公钥放置到华为云上纯中文界面,真的友好
)clone
和启动`git clone remoteurl
cd your projectName
npm install
npm run dev node
`git
华为云
上,为了完成整套研发环节的闭环,咱们须要将构建、发布都迁移到华为云鲲鹏服务器
上gitHub
和Travis CI
和docker-compose
完成一键push
代码,而后一键完成发布,如今要在华为云
上实现一套自动化构建流程React
,后端基于Node.js
的express
框架,跟华为云的devstar
的模板很是像docker、node.js
等等这些(PS:
任务新建后能够修改任务~)docker-compose
发布,先后端都打包在一个镜像中push
后,构建任务不必定须要立刻执行,并且个人推送次数可能很频繁,此时我能够调成定时任务,还能限制次数(真的很贴心)dockerfile
文件,用于docker
,基于Node.js 12.16.3
版本的镜像,指定端口`#引用镜像
FROM node:12.16.3redis
RUN mkdir -p /usr/www
WORKDIR /usr/www
COPY . /usr/www
RUN npm run builddocker
ENV HOST 0.0.0.0
ENV PORT 8080express
EXPOSE 8080npm
CMD ["node","./server/index.js"]
`后端
能够选择什么分支
),根据配置定时自动构建,而后能够经过接口或者手动借助docker-compose
命令进行一键更新发布docker-image
的制做和push
(具体参数能够参考提示)docker
,而后build
打包镜像,最后push
便可完成构建这一步,咱们本地彻底是无感知的~也不须要考虑配置和环境的问题4核8G
的机器可能就扛不住几个项目同时构建,在这里就不用担忧)docker
镜像已经发布完成ssh
链接华为云服务器,执行编写好的docker-compose
文件token
方式(有权限的人才能够发布)调用,执行docker-compose
命令,达到发布目的ssh
链接到华为云鲲鹏服务器
ip
地址后,ssh
链接成功,编写docker-compose
文件`version: "3.7"
services:
redis:
image: redis:3
container_name: redis
hostname: redis
command: redis-server /usr/local/etc/redis/redis.conf --requirepass huaweiapp666
volumes:
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
ports:
- "6379:6379"
huaweiapp:
image: jinjietan/huaweiapp:latest
ports:
- "8080:8080"
restart: on-failure
`服务器
docker-compose pull
app
docker-compose
docker-compose up -d
华为云鲲鹏服务器
上