`

Docker 安装Jenkins

阅读更多
1.安装docker
2.安装docker-compose
3.创建目录/home/chengf/jenkins
4.创建数据卷
docker volume create --name jenkins_data

5.在docker host主机上下载安装JDK1.8,如果是maven项目还需要下载安装maven
6.安装启动Jenkins
docker run --name chengf_jenkins -d -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home -v /home/chengf/soft/jdk1.8.0_111:/usr/local/jdk -v /home/chengf/soft/apache-maven-3.3.9:/usr/local/maven -v /home/chengf/.m2:/var/jenkins_home/.m2 jenkins

  • -v jenkins_data:/var/jenkins_home 把Jenkins主目录挂到刚创建的valume
  • -v /home/chengf/soft/jdk1.8.0_111:/usr/local/jdk 把主机上的jdk挂载到Jenkins镜像内部,这样在Jenkins内部不需要安装JDK也可以使用
  • -v /home/chengf/soft/apache-maven-3.3.9:/usr/local/maven 把主机上的maven挂载到Jenkins镜像内
  • -v /home/chengf/.m2:/var/jenkins_home/.m2 jenkins 把主机上的.m2文件挂载到Jenkins内的.m2下,这样如果我们需要配置maven私服等属性时,可以直接配置主机上.m2/setting.xml文件

7.安装Jenkins插件
需安装 Maven Integration plugin、GitLab Plugin、Gitlab Hook Plugin插件,直接安装失败的话,可以先下载下来,然后在advance中,选中下载下来的插件上传后安装



8.设置Jenkins时间
* 直接运行Jenkins镜像时日期可能不准,而镜像内部又不能通过date -s 来设定,可以通过把主机的timezone设定到镜像里面来解决这个问题,即在启动脚本中追加

 -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone 



9.利用Jenkins直接生成docker 镜像

因为Jenkins镜像只包含一个基本的linux运行环境,所以不能直接在里面运行对docker build 这样的命令,所以需要用 Publish over SSH 这个插件,将Jenkins镜像打好的jar传递到一个正式的linux环境中,并通过ssh命令生成镜像,具体步骤

  • 安装 Publish over SSH
  • 配置 ssh server
  • 1. Passphrase: your passphrase
     2. path to key: blank
     3. key : blank
     4. Disable exec : un-check
    SSH Servers
    
    1. Name: remote_user@remotehost.com
     2. hostname: remotehost.com
     3. Username: remote_user
     4. Remote Directory: your remote directory
    Advanced --
    
    5. check the box "use passsword authentication, or use a different key"
        `important`
    
     6. Passphrase / Password: your linux login password`important`
    
     7. path to key: blank
    
     8. key:blank
    
     9. port: ssh server's ssh port(default 22)
    
     10. Timeout(ms): 300000
    



  • 工程配置Post Steps




  • 这样就可以利用ssh server上的docker命令直接生成docker 镜像,并将镜像文件上传到自己的私服上,因为我这边的环境中docker repository和ssh server 是同一台机器,所以生成的镜像名称是localhost,如果不一样需要改成相应的docker repository的ip
    • 大小: 17.6 KB
    • 大小: 19.2 KB
    • 大小: 42.5 KB
    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics