Docker版本Jenkins的安装
安装使用docker的Jenkins CHIN 2018-11-27
1.什么是Jenkins
Jenkins是当前非常流行的一款持续集成工具,可以帮助大家把更新后的代码自动部署到服务器上运行。
2.为什么用docker版的Jenkins
Jenkins主要有三种安装方式
- 下载官方war包,放到tomcat中直接运行。
- yum安装,在linux服务器上安装Jenkins。
- 使用官方docker镜像。
推荐直接使用docker镜像。
3.准备工作
要使用docker镜像,首先安装docker。
4.寻找官方镜像
我们可以到Jenkins官网上寻找docker镜像地址。
点击docker按钮,自动跳转到dockerhub,在这里可以找到下载命令。
dockerhub
5.启动Jenkins
进入安装好docker的linux服务器(以Ubuntu Server 14.10环境为例)。
输入命令,下载Jenkins官方镜像到服务器上。
docker pull jenkins/jenkins
启动Jenkins
耐心等待下载完成,输入命令查看下载完成的镜像
docker images
镜像下载完成,开始启动容器。
启动容器前,建议仔细阅读前面寻找镜像时Docker Hub上关于jenkins镜像的详细说明。
在镜像文档里,我们知道Jenkins访问的端口号是8080,另外还需要暴露一个tcp的端口号50000。使用如下命令启动
Jenkins镜像。
docker run -d -p 8080:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins
这里逐条解释下各参数的意义。
-d 后台运行镜像
-p 80:8080 将镜像的8080端口映射到服务器的80端口
-p 50000:50000 将镜像的50000端口映射到服务器的50000端口
-v jenkins:/var/jenkins_home /var/jenkins_home目录为jenkins工作目录,我们将硬盘上的一个目录挂载到这
个位置,方便后续更新镜像后继续使用原来的工作目录。
-v /etc/localtime:/etc/localtime 让容器使用和服务器同样的时间设置。
--name jenkins 给容器起一个别名
启动后输入命令 docker ps -a
查看所有容器,可以看到jenkins已成功启动。
6.配置Jenkins
6-1 初始化密码
在浏览器输入http://ip 进入Jenkins登录页面。页面会提示你到服务器的指定位置获取初始化密码。
注意,因为docker版的jenkins,所以这个路径不是服务器的路径,而是容器内的路径。可以通过如下命令从容
器中获取到初始化密码。
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
在页面输入密码,点击 Continue,进入插件安装页面。我们点击左边的 Install suggested plugins ,安装推荐插件就好。
耐心等待安装完成
安装好插件后,系统会提示建立管理员账户。
创建管理员账户不建议直接使用admin继续
创建管理员账户后进入系统,先来配置常用工具。
配置工具
6-2 配置jdk
进入工具配置页,首先看到的就是jdk配置,这里我们先使用自动安装的java8。
配置JDK
注意,自动安装jdk需要你填入oracle的账号密码,这样Jenkins才能自动帮你到oracle安装。如果没有oracle账
号,建议先去Oracle官网注册一下。
6-3 配置git
配置好jdk自动安装后,继续配置git。git的字段安装更简单,起个别名,勾上自动安装。
配置git
6-4 配置Gradle
配置好git后继续配置Gradle,一样简单,起个别名,勾上自动安装,选择Gradle的版本。
配置gradle
至此,jenkins就安装配置完成。
7.生成SSHKey
容器从github上面下载代码的时候需要用到。因为Jenkins是基于docker的,不是直接安装在服务器上,这里有很大
的不同。 要生成容器的SSHKey,首先要先进入容器
docker exec -it jenkins /bin/bash
进入容器后生成sshkey ssh-keygen -t rsa -C "***@**.com"
在容器内输入 exit
离开容器
使用如下命令获取公钥
tail /var/lib/docker/volumes/jenkins/_data/.ssh/id_rsa.pub
查看/复制sshkey