使用docker搭建持续集成(CI)环境

                                使用docker搭建持续集成环境

本文主要介绍如何在docker中搭建持续集成(CI)环境,按照文中的步骤,可以完成使用jenkins打包项目并上传到nexus上。

环境要求

  • mac(我使用的环境)/linux/ubuntu
  • 已经安装了docker以及创建了swarm集群

1.GITLAB安装

如果本地没有对应的gitlab镜像可以到docker hub 上去拉取。拉取完成之后tag成自己想要的名称以及版本(要跟stack文件里面的镜像一致)。

启动命令:docker stack deploy -c 0-gitlab.yml git

stack启动文件内容如下:

version: "3"
services: 
 gitlab: 
   image: registry:5000/falcon/gitlab-ce:R1.1.0
   environment: 
     # external_url 设置通过HTTP访问的路径
     # gitlab_rails['gitlab_shell_ssh_port']设置通过SSH访问项目的端口
     GITLAB_OMNIBUS_CONFIG: |
       external_url 'http://gitlab:8000'
       gitlab_rails['gitlab_shell_ssh_port'] = 8022
   hostname: gitlab 
   ports:
     - "8000:8000"
     - "8022:22"
   networks: 
     - mcsas-network
   # 将gitlab的目录挂载到本机以避免重启容器数据丢失
   volumes:
     - /Users/xuefei/docker/volumes/git/etc:/etc/gitlab
     - /Users/xuefei/docker/volumes/git/opt:/var/opt/gitlab
     - /Users/xuefei/docker/volumes/git/log:/var/log/gitlab
   deploy:
     replicas: 1
     update_config:
       delay: 10s
     restart_policy:
       condition: on-failure
  networks:
     mcsas-network: 
       external: true

1.2 设置root密码以及创建group以及用户

  1. 浏览器中输入http://hostname:8000,进入页面
  2. 设置root密码
  3. 创建group以及jenkins用户

1.3 生成并设置SSH key

1.3.1 SSH-key的创建(步骤以及操作图):

  1. 输入 ssh-keygen -t rsa -C “[email protected]” ,按回车键
  2. 输入文件生成的路径,如果不输入则默认为当前目录(~/.ssh)
  3. 输入密码/确认密码(可以为空,我采用的也是空)
  4. 生成完成

1.3.2 设置SSH keys

  1. 用jenkins用户登录gitlab
  2. 点击头像->Profile Settings->SSH Keys
  3. 将id_rsa.pub文件中的内容复制到key下方的文本框中点击保存

2.Nexus安装

启动命令:docker stack deploy -c 1-nexus.yml nexus

stack启动文件内容如下:

version: "3"
services: 
  nexus: 
    image: registry:5000/sonatype/nexus3
    hostname: nexus
    ports:
      - "8081:8081"
    networks: 
      - mcsas-network
    volumes:
      - /Users/xuefei/docker/volumes/nexus/data/:/nexus-data
    deploy:
      replicas: 1
      update_config:
        delay: 10s
      restart_policy:
        condition: on-failure
networks:
  mcsas-network: 
    external: true

在nexus启动之后,浏览器中输入http://hostname:8081,登录之后,可以看到页面首页如下:

使用docker搭建持续集成(CI)环境_第1张图片

2.1创建阿里云代理仓库以及自己项目的仓库

这里创建阿里云代理仓库是为了解决包的下载速度问题,具体的需要哪些代理仓库还是要根据实际的开发环境决定。

3.jenkins安装

启动命令:docker stack deploy -c 2-jenkins.yml jenkins

version: "3"
services: 
  jenkins: 
    image: jenkinsci/blueocean
    hostname: jenkins 
    ports:
      - "50000:50000"
      - "8080:8080"
    networks: 
      - mcsas-network
    volumes:
      - /Users/xuefei/docker/volumes/jenkins:/var/jenkins_home
      # 将宿主机上的docker挂载到jenkins镜像里
      - /var/run/docker.sock:/var/run/docker.sock
      - /Users/xuefei/apache-maven-3.5.4:/var/local/apache-maven-3.5.4
    deploy:
      replicas: 1
      update_config:
        delay: 10s
      restart_policy:
        condition: on-failure
networks:
  mcsas-network: 
    external: true

在浏览器中输入http://hostname:8080,按照界面操作完成jenkins的配置以及插件的安装

3.1 全局变量配置

进入系统管理界面,点击系统设置,找到全局属性,勾选环境变量复选框,配置git以及maven的配置

使用docker搭建持续集成(CI)环境_第2张图片

settings.xml文件需要放在 /Users/xuefei/docker/volumes/jenkins/(挂载目录)/maven_settings下,文件内容如下:




    
  
     
	    jpractice-snapshots
	    admin
	    admin123
     
  
   
  
    	
	        public  
	        internal nexus repository  
	        http://nexus:8081/repository/maven-public/
	        central  
    	
  

  
    
       jdk-1.8
       
          true
              1.8
          
           
              1.8 
              1.8 
              1.8 
          
    
    
       snapshots
       
          true
       
	  
            
              public
            	 http://nexus:8081/repository/maven-public/
               	   
               	      true
            	    
               	    
                      true
                    
       		 
 	      
	
  

3.2 全局工具配置

点击“jenkins”(左上角),系统管理,全局工具配置,进入全局工具配置页面。主要配置的有

Maven的默认配置

使用docker搭建持续集成(CI)环境_第3张图片

JDK配置

使用docker搭建持续集成(CI)环境_第4张图片

Maven的配置

使用docker搭建持续集成(CI)环境_第5张图片

3.1 新建任务

点击页面上的“新建任务”按钮,在新建任务页面中输入项目名称,并选择“构建一个maven项目”,点击“确认”按钮

使用docker搭建持续集成(CI)环境_第6张图片

在配置页面中输入相关信息:

在General中输入描述信息

在源码管理模块,选择git,配置Repository URL

使用docker搭建持续集成(CI)环境_第7张图片

点击上图中的add按钮进入Credentials配置页面,进行如下操作

  1. 在弹出页面中类型选择“SSH Username with private key”
  2. 在Username中输入自定义的名字,例如“jenkins”
  3. 选中“Enter directly”
  4. 将之前生成的rsa的private key(/Users/xuefei/.ssh/id_rsa)填入其中
  5. Passphrase字段因为生成rsa时没有输入密码,所以这里不用填写
  6. ID、描述可以不填写
  7. 点击“添加”按钮完成操纵

使用docker搭建持续集成(CI)环境_第8张图片

在bulid模块填入maven的操作

使用docker搭建持续集成(CI)环境_第9张图片

 

 

 

你可能感兴趣的:(docker,ci)