ubuntu使用docker,nginx,jenkins,gitlab实现持续集成

结构:

docker创建两个容器,一个nginx,一个jenkins,将gitbook安装在jenkis容器中

1.docker以及nginx容器的安装

见此链接

  1. 其中nginx容器的创建命令修改为下面命令,区别为挂载了两个文件夹,一个用来存nginx的常规文件,一个用来存放html文件,在
  2. docker run -p 8080:80 --name nginx_1 -v /home/dockerData/nginx_1:/home/nginx_1 -v /home/dockerData/jenkins_1/nginxHTML:/home/html --privileged=true -it nginx /bin/bash
    
  3. nginx的配置文件中修改默认html存放的地址:先以root角色进入容器
  4. docker exec -it -u root nginx_1 /bin/bash
    
  5. 打开/etc/nginx/conf.d/default.conf,默认的有两个配置location的地方,将root地址修改为 /home/html,报错配置文件并重新load一下nginx

2.jenkins容器的安装

docker run -p 8081:8080 -p 50000:50000 --name jenkins_1 -v /home/dockerData/jenkins_1:/home/jenkins_1 jenkins

 

3.在jenkins容器中安装gitbook

  1. 以root用户进入jenkins容器:
  2. docker exec -it -u root jenkins_1 /bin/bash
    
  3. 以root角色执行上述命令,安装特定版本的nodejs,若执行时间较长,需要科学上网.安装完成后使用nodejs -v和npm -v可以查看版本:
  4. curl -sL https://deb.nodesource.com/setup_9.x | bash -
    apt-get install -y nodejs
    
  5. 使用npm安装gitbook,gitbook -V 查看gitbook版本:
  6. npm install gitbook-cli   -g

4.配置jenkins

  1. 打开jenkins的管理网站,localhost:8081,第一次登录的话,根据提示在本机文件内找到密码,选择安装默认插件,等待进入
  2. 进入配置,全局配置,找到如下位置,初始值为localhost:8081,改为自己主机的ip地址,可以通过ifconfig查询
  3. 加载失败
  4. 下载所需其他插件,在配置,插件管理,可选插件处搜索并安装:gitlab plugin;gitlab hook plugin
  5. 创建工程:选择自由风格的工程;源代码管理处选择git管理,输入仓库地址,添加用户名密码认证;构建触发器处选择Build when a change is pushed to GitLab(后面提示url会在gitlab中用到). 并在高级选项中secret token处生成token(此token在gitlab中会用到)在构建脚本处输入以下代码:
    gitbook build /var/jenkins_home/workspace/gitbook_test/
    rm -rf  /home/jenkins_1/nginxHTML/
    cp -a    /var/jenkins_home/workspace/gitbook_test/_book  /home/jenkins_1/nginxHTML
    chmod  -R 777  /home/jenkins_1/nginxHTML

    其中:gitbook build后面地址为jenkins自动从gitlab拉下来的文件地址. rm 后清空的为nginx容器的html文件的地址, cp 将重新生成的html文件复制到nginx的html文件夹,最后给予权限

  6. 保存.

5.配置gitlab hook

  1. 打开setting,integrations,hook,输入上文中提到的url和token,保存,测试,返回200即为成功,然后返回jenkins管理页面查看是否构建成功.

你可能感兴趣的:(linux)