个人公众号: MarkerHub,网站: https://markerhub.com更多精选文章请点击:Java笔记大全.mdphp
公司初创技术团队,没有任何基础设施的状况下,须要搭建一系列 code 管理以及自动化部署等工具…. 因此引起了下面一系列的部署过程,历时两天,中间也是碰到各类问题,但最终把基本工具所有搭建成功,耶~,下面带你们一块儿看下这次搭建过程。前端
服务器一台,CentOS 的,公司就给了一台配置较低的服务器当临时服务器,没办法了,就这么搞吧。java
思考:若是我用传统的 yum 来安装,确定会被我装乱七八糟,还不方便本身管理维护,左右为难的状况下我选择了 Dokcer,可能有些小伙伴问 Docker 是啥怎么用,不要慌这里有传送门:node
https://segmentfault.com/a/11...
为了快速搭建一套 PHP 测试环境我决定用 laradock 了,虽然文件不少,可是里面封装的东西也是比较全的,后期开发不知道会用到什么技术,就决定先用这个,随时能够启动用获得的服务。mysql
laradock 官方文档给的介绍也很全面,我这里采用的方式是部署多套项目方式目录结构以下:nginx
+ laradock + project-1 + project-2
1.git clone https://github.com/laradock/laradock
laravel
2.cp env-example .env
git
env 里面的配置能够修改的,能够根据本身状况进行调整github
3.docker-compose up -d nginx php-fpm mysql redis
web
后面能够加上你要启动的程序,像 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/
先运行下试试吧。
如今运行环境已经搭建好了,我代码应该怎么存放呢,其实有不少的选择,要根据本身的实际状况出发,如:GitHub、码云、GitLab 等等,我选择的是 GitLab,刚开始没有发现 laradock 其实提供了 GitLab 服务。。只能本身折腾了, 其实很简单。
docker \ run -d \ -p 443:443 \ -p 8080:80 \ -p 222:22 \ --name gitlab \ --restart always \ -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 '域名'#分配给gitlab的域名,能够用nginx作反向代理到8080端口
实现自动化部署有不少种方式如:webhook、Jenkins、Travis CI 等等,个人选择是 Jenkins,由于以前部署用过因此这里依旧用了这个,laradock 依旧提供了 Jenkins 服务,又是由于没发现本身搭建了一个。。。看来下次要先多看看在动手了。
docker run -d \ --name myjenkins \ -p 8181:8080 \ -p 50000:50000 \ -v /home/jenkins/:/var/jenkins_home \ jenkins/jenkins #参数解释 #-d:让容器后台运行 #-p:暴露端口,宿主机8181->容器8080,宿主机50000->容器50000 #-v 这就是挂载磁盘了,把宿主机的目录挂载到容器中,这么作哪怕是容器坏了个人内容也不会丢失。 #宿主机/home/jenkins/目录挂载到容器中/var/jenkins_home目录,宿主机目录根据本身状况定
是否是也很简单~。~ ,可是 Jenkins 安装成功后会有一个初始化密码,怎么查看初始化密码呢,有两种方式:
#第一种方式 docker logs <你的容器名字> #这样就能够查看容器输出的内容 #第二种方式 cat /home/jenkins/secrets/initialAdminPassword#这里好的/home/jenkins须要替换成你挂载的目录
输入你上面获取到的初始化密码,下一步我选择的是推荐安装,后面本身须要的本身能够再去插件库安装。
初始化成功以后前往系统设置 -> 插件管理安装几个必要插件:
Publish Over SSH GitLab Plugin #由于是使用的Gitlab因此要安装这个 NodeJS Plugin #咱们前端使用的Vue因此要用到node
1、基础配置
安装完插件以后须要配置一些基础内容如 jdk、node、ssh 等
1.ssh 安装
进入:Manage Jenkins-> Configure System
点击高级:
点击 Test Configuration 测试是否链接成功
2.jdk、git
进入:Manage Jenkins-> Global Tool Configuration
我这里 jdk、git 采用自动安装,jdk 安装时候须要一个帐号,去注册下就能够
3.nodejs 安装
2、建立工程
3、配置工程
设置最多保留几个版本构建
使用 git 源码工具,输入 git 地址、添加 git 用户
if [ -f "test.tar.gz" ];then rm testv.tar.gz fi tar -zcvf test.tar.gz ./*
这里为何要把项目打包呢,由于下面要配置的 ssh 不支持文件夹传输,因此须要先将内容进行打包而后去服务器进行解包
所有保存好就能够去构建了。耶~
长时间没写文章了,这个篇幅较长,谢谢耐心阅读,但愿对您有所帮助,也但愿你们提供下不一样的意见,找到更有效的方式来完成,谢谢!