zsmeijin
6/16/2019 - 1:07 AM

Jenkins搭建

[Install Jenkins] #Install

运行Jenkins容器

参考:https://github.com/jenkinsci/docker/blob/master/README.md

  1. host新建文件夹用Jenkins的数据持久化,文件夹权限均修改为rwx
    mkdir -p /mydata/jenkins
    
  2. 在/mydata/jenkins下创建docker-compose.yml文件:
    version: '3'
    services:
      jenkins:
        image: jenkins/jenkins:lts
        container_name: jenkins
        restart: always
        user: root
        ports:
          - 8090:8080
        volumes:
          - /mydata/jenkins:/var/jenkins_home
          - /var/run/docker.sock:/var/run/docker.sock
          - /usr/bin/docker:/usr/bin/docker
          - /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
    
    其中下述配置仅当在Jenkins容器内调用host的docker命令时需要配置
    user: root
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock 
      - /usr/bin/docker:/usr/bin/docker
      - /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
    
  3. 安装jenkins
    docker-compose up -d
    
  4. Jenkins安装结束后登陆,按照页面引导输入admin初始化密码并安装推荐插件

为Jenkins配置Maven环境

  1. Maven可以通过jenkins页面安装:系统管理->全局工具配置->maven安装,安装后的maven位于host的/mydata/jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven路径下;也可以在host上安装的maven路径然后在上述Jenkins配置中指定host的maven安装路径。此处采用第一种方法
  2. 安装maven集成插件:系统管理->插件管理->安装插件:Maven Integration plugin
  3. 为提升同步速度可将maven仓库切换到国内阿里源。编辑maven安装路径下/conf/settings.xml的如下字段:
      <mirrors>
        <!-- mirror
         | Specifies a repository mirror site to use instead of a given repository. The repository that
         | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
         | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
         |-->
        <mirror>
          <id>alimaven</id>
          <mirrorOf>central</mirrorOf>
          <name>aliyun maven</name>
          <url>https://maven.aliyun.com/repository/public</url>
        </mirror>
      </mirrors>
    

在Jenkins中使用私有镜像仓库

安装Jenkins的docker-compose.yml中已支持调用host的docker命令。但为了在Jenkins中可以使用私有镜像仓库,需要在Jenkins运行的容器中再次执行docker login命令

  1. 在容器内执行/bin/bash
    docker exec -i -t container_id /bin/bash
    
  2. 在/bin/bash内执行login
    docker login -u 'user' -p 'password' example.myregistry.com