基于Docker利用DaoCloud实现...

胡大大 2018-09-11 13:59:55 1833 7 comments

啊哈,我胡汉三又回来了。好久没写博文了,哎,工作太忙了(其实就是懒…),哈哈,废话不多说,直接开干。今天给大家带来一个Daocloud结合Docker实现项目自动化部署。

需要准备的东西
  • 外网能访问的git仓库(码云、coding、gitlab、GitHub等等)
  • 安装好Docker环境的服务器一台(没有的,可以用Daocloud提供的胶囊服务器)
  • Daocloud账号一个
  • ssh连接工具,如:xshell、mobaxterm等,推荐后者,谁用谁知道,哈哈。附上下载地址:Mobaxterm

需要具备的技能

  • Dockerfile的编写,docker的使用
  • git的使用
  • 基础Linux命令

接下来,撸起袖子就是干。我将以一个Laravel项目部署为例来展示自动化部署。

步骤一

  1. 新建git仓库

git仓库

  1. 注册Daocloud账号,然后进入控制面板

注册地址:Daocloud

注册

控制台

  1. Daocloud关联git仓库项目

控制台

注意:这里由于Daocloud现在不支持码云,所以只放了一个仓库地址,其他如GitHub等都支持,可以绑定账号,然后自己选择仓库,私有仓库待会会添加一个ssh的秘钥来让Daocloud有权拉取仓库代码

项目

项目创建好,会自动跳到该项目面板,默认有三个阶段,测试-构建-发布,基于这三个阶段,你可以做很多自定义的动作,包括项目上线前的测试,你可以自定义测试脚本来测试项目,构建基于Dockerfile,不熟悉Dockerfile编写的小伙伴不用着急,复制我的代码即可。然后就是将构建好的项目发布到自己的服务器上。

  1. 本地拉取git仓库代码,安装laravel,编写好Dockerfile,然后推送到服务器
克隆项目

克隆项目

创建laravel项目

laravel项目

编写Dockerfile文件

docker项目

FROM ohdata/php-apache:7.2.9

EXPOSE 80

RUN dpkg-reconfigure -f noninteractive tzdata &&
    a2enmod rewrite

ADD ./ /var/www/

RUN cd /var/www &&
    composer install &&
    chown -R www-data ./ &&
    rm -r html &&
    mv public/ html &&
    cp .env.example .env &&
    php artisan key:g
推送到git仓库

gitpush

触发构建流程(第一次手动触发,以后就会自动触发了,这里我设置只有master分支代码才自动构建)

gitpush

构建成功,添加发布任务,发布到自有主机

publish

注意:一般新用户是没有主机的,可以使用Daocloud的胶囊主机,有120分钟的使用时间,在集群管理->添加主机中能看到,自有主机按照接入方式接入即可

部署发布成功,现在我们来访问一下部署的页面,因为在部署的时候,我将容器端口80映射到了服务器的3025端口,所以,我们访问服务器地址加3025端口就能访问项目了

publish

有的小伙伴要问了,说了半天自动部署,哪里自动部署了呢,别着急,精彩马上出现,访问项目地址,出现了laravel的默认首页,现在,我们修改它,把它换一个样子,然后推送到git仓库,耐心等待1分钟,你会发现服务器的laravel默认首页已经改变了。

publish

publish

至此,基于Daocloud实现了项目的自动化部署,通过本地修改代码后,只需要推送到master分支,就能触发自动部署,这个就是webhook的升级版,原理就是git仓库webhook通知Daocloud,然后Daocloud拉取最新的代码构建镜像,然后发布到指定的主机。如果你有什么不懂得地方,建议阅读一下官方文档,附上地址:Daocloud文档

最后,希望这个能帮到一些小伙伴。。。last but not least,happy coding…转载请注明出处。。。



标签
评论一下

评论列表

  • Mr.W 评论:
<script> alert("测试XSS") </script>
  • 2019-06-28 15:30:21
  • 回复
  • 孤单又灿烂的人 回复 Mr.W
调皮...
  • 2019-06-28 15:32:16
  • 回复
  • 清风笛竹 评论:
6666二狗继续更博客啊
  • 2019-03-18 20:51:24
  • 回复
  • 孤单又灿烂的人 回复 清风笛竹
哈哈,好的
  • 2019-03-19 09:03:14
  • 回复
  • 胡鑫 评论:
厉害了
  • 2019-02-12 13:25:06
  • 回复
  • 孤单又灿烂的人 评论:
可以啊
  • 2019-02-12 11:42:19
  • 回复
  • 孤单又灿烂的人 评论:
抱歉,daocloud目前不支持码云的自动化部署。。笔误。
  • 2018-09-25 14:44:29
  • 回复