限时 5折! 详情

hyperf 实战之单机部署(二)

1287 0 0

上节课我们实现了在单台机器上手动部署 hyperf 项目,但是每次发布代码,都要先在本地 docker build, docker tag, docker push 一顿操作,正式服还得执行 sh restart.sh 命令部署,如果发布频繁,真的会把人累死。

有没有一种办法,本地代码 push 之后,正式服就自动部署了呢?答案是肯定的。

今天我们一起看看如何基于 gitlab + docker 实现 hyperf 项目的自动化部署。

准备环境

gitlab 这里我选择 gitlab 官方 https://gitlab.com/ 进行托管 ,大家也可以私有化部署 gitlab 。

为了手把手带大家体验,这里我新购了一台阿里云的 ecs Node1 59.110.175.221 ,在后面的集群部署中,Node1 也会充当管理节点。

在 gitlab 上(https://gitlab.com/projects/new)新建仓库 q3,导入我们的项目 questions。

几个概念

根目录下的 .gitlab-ci.yml 文件,这个是官方提供的配置文件,它定义了如何构建项目,我们可以在该文件内配置要执行的各个任务,(.gitlab-ci.yaml 配置的语法参考 https://docs.gitlab.com/ee/ci/yaml/index.html

GitLab-Runner 服务器,我们会在 Node1 服务器上安装 GitLab-Runner, 任务是由 Runners 接管并且由服务器中 runner 执行。

自动部署的流程

  1. 本地提交代码到指定分支
  2. .gitlab-ci.yml 文件内配置的 Job 任务自动执行

.gitlab-ci.yml

刚刚我们说了,.gitlab-ci.yml 定义了如何构建项目,在该文件内配置了各个要执行的任务 Job,stages 就是定义几个流程(job)的意思,比如

stages:
  - build
  - deploy

这里我们定义两个 job,即先执行 build 任务,再执行 deploy 任务。

build 和 deploy 具

去购买

还有90%的精彩内容,购买继续阅读