0 前言
本文讲述利用 DaoCloud 零开始搭建一个自动化部署项目的基本流程
在使用 DaoCloud 之前,推荐先大致了解一下 docker 是什么
这里也整理了一些 docker 的基本操作 http://www.jianshu.com/p/affefdeb24b3
当然,跳过 docker 直接开始也是完全可行的!
1 首先在 github 创建一个项目
![](https://img.haomeiwen.com/i7153030/2855bdd65c47b982.png)
2 接着在本地电脑上 clone 刚才创建的 git 库
并创建一个初始的 nuxt 项目
![](https://img.haomeiwen.com/i7153030/1c0b9c2aa5dd6613.png)
![](https://img.haomeiwen.com/i7153030/b38f34a05c523afc.png)
3 修改 package.json 文件,使项目部署到 0.0.0.0 上
然后 push 到 github
![](https://img.haomeiwen.com/i7153030/9b7da781e9d466a8.png)
![](https://img.haomeiwen.com/i7153030/17d625f8d76f8cfa.png)
4 接下来我们开始利用 DaoCloud 来实现刚才创建项目的自动化部署
登录 DaoCloud https://account.daocloud.io/signin
可以选择以 githhub 账户登录
![](https://img.haomeiwen.com/i7153030/4b557f622bd174be.png)
5 在 “项目” 菜单中创建新项目
![](https://img.haomeiwen.com/i7153030/34a2ff077e450b71.png)
6 设置代码源为之前创建的 github 库
开始创建
![](https://img.haomeiwen.com/i7153030/aef5e4b2f54ed7b1.png)
![](https://img.haomeiwen.com/i7153030/b6e6d8d42ecf2820.png)
7 创建后可以去设置项目流程
这里就先用默认的 “测试” 和 “构建” 流程,不作任何改动
然后点击手动触发,开始第一次执行这个项目
![](https://img.haomeiwen.com/i7153030/4628cdc156e18640.png)
![](https://img.haomeiwen.com/i7153030/aabfb3df4bfabbc8.png)
![](https://img.haomeiwen.com/i7153030/5f9b73f899eb2346.png)
8 在项目列表页面,可以看到项目的当前状态
![](https://img.haomeiwen.com/i7153030/88bca34d92163c26.png)
9 等待项目执行完成,会发现页面上提示执行失败了
点击失败的小红点查看错误详情
发现错误原因是 “没有找到 Dockerfile 文件”
![](https://img.haomeiwen.com/i7153030/4e86e98ee0959ecd.png)
![](https://img.haomeiwen.com/i7153030/80f0b95f6d69a76d.png)
10 需要在 git 项目的根目录下创建一个 Dockerfile 文件
Dockerfile 用来定义这个项目运行环境的构建过程
添加好后再次提交 push
![](https://img.haomeiwen.com/i7153030/0b4e9802b83b4740.png)
![](https://img.haomeiwen.com/i7153030/87695de91e2ba4f2.png)
11 push 后发现 DaoCloud 上的项目立刻开始自动执行了
这次执行的结果为成功
![](https://img.haomeiwen.com/i7153030/1328ba25c56333d9.png)
12 进入 “镜像仓库” ,如果发现有一个新生成的镜像
说明到目前为止已经成功地将一个 git 项目,构建为一个镜像了。
记下这里的镜像名称和路径。
![](https://img.haomeiwen.com/i7153030/cf3f33f7af9d1540.png)
13 接下来要做的是将镜像部署到自己的服务器,使之正常工作
进入 “集群管理” 菜单点击 “添加主机”
![](https://img.haomeiwen.com/i7153030/d57505e30e06c10c.png)
14 根据页面的提示信息,将第 3 步中给出的命令复制到自己的服务器上执行
关于安装 docker 总结了一些经验 http://www.jianshu.com/p/9733c8482173
![](https://img.haomeiwen.com/i7153030/6663c5f7cb612215.png)
15 完成后如果查看新添加的主机状态,是否一切正常
![](https://img.haomeiwen.com/i7153030/723f2cfbcdb370ee.png)
16 进入 “stack” 菜单,创建一个 stack
YML 内容填写
dao:
image: caocloud.io/xxx/dao:master-zzz
ports:
- 3000:3000
其中 image 的值为之前记下的镜像路径
然后在下面选择我们刚添加的集群主机
完成创建
![](https://img.haomeiwen.com/i7153030/bf8e336aea59cba1.png)
![](https://img.haomeiwen.com/i7153030/d9469ab1c4fe94ef.png)
![](https://img.haomeiwen.com/i7153030/cea477e03872815a.png)
17 创建后自动进入 stack 详情页面
可以看到项目当前状态和实时刷新的部署和执行日志
![](https://img.haomeiwen.com/i7153030/055f999a2088534a.png)
18 在浏览器中打开服务器地址 3000 端口
可以看到默认的 nuxt 项目首页
![](https://img.haomeiwen.com/i7153030/49cd780699d66ebc.png)
19 接下来需要实现自动部署更新项目的功能
回到项目管理中的流程定义页面
在 “发布阶段” 中点击 “添加并行任务”
![](https://img.haomeiwen.com/i7153030/fb56889b6b7cdd9f.png)
20 选择任务 “发布到只有主机”
然后选择应用,完成创建发布阶段
![](https://img.haomeiwen.com/i7153030/fe77944988f23d4f.png)
![](https://img.haomeiwen.com/i7153030/ccd268697e8e8232.png)
![](https://img.haomeiwen.com/i7153030/819c1309626c5462.png)
21 至此已经完成了整个自动化项目的构建
接下可以测试一下,每次 push 后是否会自动更新生效
在 nuxt 项目 的 pages 目录中添加一个 test.vue 文件,并提交 push
![](https://img.haomeiwen.com/i7153030/85e5809e944a3cd1.png)
![](https://img.haomeiwen.com/i7153030/0bd29c168c703f4b.png)
22 可以看到项目开始自动执行
这次执行过程有 3 个阶段
![](https://img.haomeiwen.com/i7153030/f7c7c703c55e5ce7.png)
23 成功执行后 在浏览器访问网站的 /test 路由
可以看到出现了新添加的 test 页面
![](https://img.haomeiwen.com/i7153030/dec9b581e703a187.png)
[成功]
网友评论