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

7小时前发布了一套基本的自动化部署搭建流程

时间:2023-03-29 15:35:57 PHP

问题背景公司初创技术团队,没有任何基础设施,需要搭建一系列代码管理和自动化部署的工具...所以下面的系列被触发部署过程持续了两天,中间遇到了各种问题,不过最终基本工具都搭建成功了,耶~,下面就带大家一起看看搭建过程吧。一台资源服务器,CentOS,公司给了一台配置低一点的服务器作为临时服务器,没办法,就这么干吧。心想:如果我用传统的yum安装,肯定会被我搞得一团糟,也不方便我管理和维护。我在两难的时候选择了Docker。有朋友可能会问Docker是什么,怎么用。不要在这里惊慌。传送门:Linuxdocker-compose实战,【进阶】docker整理PHP开发环境测试环境搭建图片说明为了快速搭建PHP测试环境,我决定使用laradock。虽然文件很多,但是打包的东西比较齐全,不知道后期开发会用到什么技术,所以决定先用这个,随时可以启动可用的服务。laradock官方文档给的介绍也很全面。我这里采用的方法是部署多套项目。目录结构如下:laradockproject-1project-2开始使用:gitclonehttps://github.com/laradock/l...cpenv-example.envenv中的配置可以根据自己的情况修改调整.docker-composeup-dnginxphp-fpmmysqlredis后面可以跟你要启动的程序,比如rabbitmq,mongo等,需要的时候在最后加上即可启动,第一次启动的时候有点长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。如果你看到启动成功,你将无法立即访问它。稍等片刻。可以在您指定的主机目录中修改配置文件。需要修改的内容如下:gitlab_rails['gitlab_ssh_host']='主机IP'#主机IP地址gitlab_rails['gitlab_shell_ssh_port']=222#暴露给主机的ssh端口external_url'域名'#The分配给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#good/这里的home/jenkins需要替换成你挂载的目录。如果需要,可以去插件库安装。插件安装初始化成功后,进入SystemSettings->Plug-inManagement安装几个必须的插件:PublishOverSSHGitLabPlugin#因为我们使用Gitlab,所以需要安装这个NodeJSPlugin#我们使用Vue在前端,所以我们需要使用node来开启旅程1.基础配置安装好插件后,需要配置jdk、node、ssh等一些基础内容ssh安装进入:ManageJenkins->ConfigureSystemclipboard.png点击Advanced:clipboard.png点击TestConfiguration测试是否连接成功jdk,git输入:ManageJenkins->GlobalToolConfigurationclipboard.png我这里使用自动安装jdk和git。安装jdk的时候需要一个账号。注册后可以用nodejs安装clipboard.png]2.新建项目clipboard.png新建项目,选择自由风格3.配置项目clipboard.png设置保留多个版本构建clipboard.png使用git源码工具,输入git地址,添加git用户clipboard.pngif[-f"test.tar.gz"];然后rmtestv.tar.gzfitar-zcvftest。tar.gz./*这里为什么要打包项目,因为下面要配置的ssh不支持文件夹传输,所以需要先打包内容再去服务器解压clipboard.png和在构建之前保存所有内容。嗯~谢谢观看。好久没写文章了。这是一篇很长的文章。感谢您的耐心观看。希望对您有所帮助。也希望大家能提出不同的意见,找到更有效的方法来完成。谢谢你!