问题背景 公司初创技术团队,没有任何基础设施的情况下,需要搭建一系列code管理以及自动化部署等工具….所以引发了下面一系列的部署过程,历时两天,中间也是碰到各种问题,但最终把基本工具全部搭建成功,耶~,下面带大家一起看下此次搭建过程。 资源服务器一台,CentOS的,公司就给了一台配置较低的服务器当临时服务器,没办法了,就这么搞吧。 思考:如果我用传统的yum来安装,肯定会被我装乱七八糟,还不方便自己管理维护,左右为难的情况下我选择了Dokcer,可能有些小伙伴问Docker是啥怎么用,不要慌这里有传送门: 测试环境搭建 为了快速搭建一套PHP测试环境我决定用laradock了,虽然文件很多,但是里面封装的东西也是比较全的,后期开发不知道会用到什么技术,就决定先用这个,随时可以启动用得到的服务。 laradock官方文档给的介绍也很全面,我这里采用的方式是部署多套项目方式目录结构如下: + laradock+ project-1+ project-2 1.git clone https://github.com/laradock/laradock 2.cp env-example .env env 里面的配置可以修改的,可以根据自己情况进行调整 3.docker-compose up -d nginx php-fpm mysql redis 后面可以加上你要启动的程序,像rabbitmq、mongo等等,需要的时候追加在尾部就可以启动,首次启动时间有点长 4.docker-compose exec --user=laradock workspace bash 像laravel等项目肯定少不了composer,执行这个命令进入工作区,就可以执行composer了 5.docker-compose exec nginx nginx -s reload 肯定有人会问我更改了nginx配置是不是每次都要进入nginx容器去重启,或者把整个容器都重启了呀,不用的,执行这个命令就可以重启nginx了。nginx站点配置文件在哪里呢:./laradock/nginx/sites/ 先运行下试试吧。 GitLab现在运行环境已经搭建好了,我代码应该怎么存放呢,其实有很多的选择,要根据自己的实际情况出发,如:GitHub、码云、GitLab等等,我选择的是GitLab,刚开始没有发现laradock其实提供了GitLab服务。。只能自己折腾了,其实很简单。
容器启动成功之后会有一段时间来启动GitLab,看到启动成功立马访问是访问不到的,稍微等一下就可以了,配置文件都在你指定的宿主机目录下可以修改,需要修改的内容如下: gitlab_rails['gitlab_ssh_host'] = '宿主机IP'#宿主机的IP地址 gitlab_rails['gitlab_shell_ssh_port'] = 222#暴露给宿主机的ssh端口 external_url '域名'#分配给gitlab的域名,可以用nginx做反向代理到8080端口 实现自动化部署有很多种方式如:webhook、Jenkins、Travis CI等等,我的选择是Jenkins,因为之前部署用过所以这里依旧用了这个,laradock依旧提供了Jenkins服务,又是因为没发现自己搭建了一个。。。看来下次要先多看看在动手了。
是不是也很简单~。~ ,但是Jenkins安装成功后会有一个初始化密码,怎么查看初始化密码呢,有两种方式: #第一种方式docker logs <你的容器名字> #这样就可以查看容器输出的内容#第二种方式cat /home/jenkins/secrets/initialAdminPassword#这里好的/home/jenkins需要替换成你挂载的目录 输入你上面获取到的初始化密码,下一步我选择的是推荐安装,后面自己需要的自己可以再去插件库安装。 插件安装初始化成功之后前往系统设置->插件管理安装几个必要插件: 开始征程一、基础配置 安装完插件之后需要配置一些基础内容如jdk、node、ssh等 1.ssh安装 进入:Manage Jenkins-> Configure System 点击高级: 点击Test Configuration测试是否连接成功 2.jdk、git 进入:Manage Jenkins-> Global Tool Configuration 我这里jdk、git采用自动安装,jdk安装时候需要一个账号,去注册下就可以 3.nodejs安装 二、创建工程
三、配置工程 设置最多保留几个版本构建 使用git源码工具,输入git地址、添加git用户 if [ -f 'test.tar.gz' ];thenrm testv.tar.gzfitar -zcvf test.tar.gz ./* 这里为什么要把项目打包呢,因为下面要配置的ssh不支持文件夹传输,所以需要先将内容进行打包然后去服务器进行解包 全部保存好就可以去构建了。耶~ |
|
来自: Bladexu的文库 > 《技术文摘》