当前位置: 首页 > 后端技术 > PHP

一套基本的自动化部署构建流程

时间:2023-03-29 14:46:59 PHP

问题背景公司的初创技术团队,没有任何基础设施,需要构建一系列代码管理和自动化部署工具……于是触发了下面的一系列部署流程。耗时两天,中间遇到了各种问题,不过最终还是把基础工具都搭建成功了,耶~下面就带大家一起看看搭建过程吧。一台资源服务器,CentOS,公司给了一台配置低一点的服务器作为临时服务器,没办法,就这么干吧。心想:如果我用传统的yum安装,肯定会被我搞得一团糟,也不方便我管理和维护。我在两难的时候选择了Docker。有朋友可能会问Docker是什么,怎么用。不要在这里惊慌。传送门:Linuxdocker-compose实战【进阶】dockerorchestrationPHP开发环境测试环境搭建为了快速搭建一套PHP测试环境,我决定使用laradock,虽然文件很多,但是打包的东西比较齐全,不知道后面的开发会用到什么技术,所以决定先用这个,随时可以启动可用的服务。laradock官方文档给的介绍也很全面。我这里采用的方法是部署多套项目。目录结构如下:+laradock+project-1+project-2开始使用:gitclonehttps://github.com/laradock/l...cpenv-example.envenv.envenv中的配置可以修改并根据自己的情况进行调整。docker-composeup-dnginxphp-fpmmysqlredis后面可以跟你要启动的程序,比如rabbitmq,mongo等,需要的时候在最后加上即可启动。第一次启动时间有点长execnginxnginx-sreload肯定有人会问我改了nginx的配置,每次都要进入nginx容器重启,还是重启整个容器,不用,执行这个命令重启nginx。nginx站点配置文件在哪里:./laradock/nginx/sites/先运行试试。GitLab的运行环境搭建好了,我的代码应该怎么存储呢?其实有很多选择,要根据自己的实际情况,比如:GitHub、码云、GitLab等,我选择的是GitLab,一开始是没有的。发现其实laradock是提供GitLab服务的。.只能自己折腾了,其实很简单。docker\run-d\-p443:443\-p8080:80\-p222:22\--namegitlab\--restartalways\-v/home/gitlab/config:/etc/gitlab\-v/home/gitlab/logs:/var/log/gitlab\-v/home/gitlab/data:/var/opt/gitlab\gitlab/gitlab-ce#参数说明:#-d:让容器在后台运行#-p:暴露端口,将容器的443端口指向宿主机的443端口,宿主机8080->容器80,宿主机222->容器22#宿主机端口可以根据自己的情况自定义#-name为你的容器起个名字,只要和已有的不一样就可以#--restart容器退出时,docker是否重启?#-v这个是挂载磁盘,把宿主机的目录挂载到容器中,即使容器坏了我的内容也不会丢失。#宿主机/home/gitlab/config目录挂载到容器/etc/gitlab目录下,宿主机目录根据自身情况确定#gitlab/gitlab-ce这个是要启动的镜像。如果镜像不存在,docker会自动下载最新版本的容器启动成功后,会有一段时间启动GitLab。如果你看到启动成功,你将无法立即访问它。你可以稍等一下。配置文件可以在你指定的host目录下修改,需要修改的内容如下:gitlab_rails['gitlab_ssh_host']='hostIP'#gitlab_rails['gitlab_shell_ssh_port']的主机IP地址=222#暴露给主机的ssh端口external_url'domainname'#分配给gitlab的域名可以使用nginx在8080端口做反向代理Jenkins实现自动部署的方式有很多种,比如:webhook,Jenkins、TravisCI等,我选择的是Jenkins,这里还是用的,因为之前已经部署过了。Laradock仍然提供Jenkins服务,因为我没有找到自己构建的服务。..看来下次还得仔细看看再做。dockerrun-d\--namemyjenkins\-p8181:8080\-p50000:50000\-v/home/jenkins/:/var/jenkins_home\jenkins/jenkins#参数说明#-d:让容器运行在后台#-p:exposeport,host8181->container8080,host50000->container50000#-v这个是挂载磁盘,把宿主机的目录挂载到容器中,即使容器坏了内容也会不要丢失。#宿主机/home/jenkins/目录挂载到容器/var/jenkins_home目录下,宿主机目录也很简单根据自己的情况~。~,但是Jenkins安装成功后,会有一个初始化密码。如何查看初始化密码,有两种方式:#第一种方式dockerlogs#这种方式可以查看容器输出的内容#第二种方式cat/home/jenkins/secrets/initialAdminPassword#这个不错这里的/home/jenkins需要替换成你挂载的目录。Jenkins配置初始化输入上面获取的初始化密码。接下来我选择的是推荐安装,后面需要的可以自己去插件库安装。插件安装初始化成功后,进入SystemSettings->Plug-inManagement安装几个必须的插件:PublishOverSSHGitLabPlugin#因为我们使用Gitlab,所以需要安装这个NodeJSPlugin#我们使用Vue在前端,所以我们需要使用node来开启旅程1.基础配置安装好插件后,需要配置jdk、node、ssh等一些基础内容ssh安装进入:ManageJenkins->ConfigureSystem点击Advanced:点击TestConfiguration测试是否连接成功jdk,git进入:ManageJenkins->GlobalToolConfiguration这里自动安装了jdk和git。jdk安装需要账号,注册后即可安装nodejs]2.新建项目,选择自由风格3.配置项目设置,最多保留几个版本进行构建。git地址,添加git用户if[-f"test.tar.gz"];thenrmtestv.tar.gzfitar-zcvftest.tar.gz./*项目为什么要打包在这里,因为下面要配置ssh是不支持文件夹传输的,所以需要先将内容打包,然后去服务器解压并全部保存,才能构建。嗯~谢谢观看。好久没写文章了。这是一篇很长的文章。感谢您的耐心观看。希望对您有所帮助。也希望大家能提出不同的意见,找到更有效的方法来完成。谢谢你!