使用docker安装jenkins做持续集成
一、jenkins的安装
参考上文docker环境的安装配置完成docker的安装。
无论安装什么软件也就是一条命令的事,jenkins也不例外。
docker pull jenkins/jenkins
docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins
-d
后台运行镜像-p 80:8080
将镜像的8080端口映射到服务器的80端口-p 50000:50000
将镜像的50000端口映射到服务器的50000端口-v jenkins:/var/jenkins_home
冒号前面的jenkins表示的是docker卷名,冒号后面的/var/jenkins_home
目录为容器中jenkins工作目录。-v /etc/localtime:/etc/localtime
让容器使用和服务器同样的时间设置。--name jenkins
给容器起一个别名
一定不能修改卷名jenkins,这个卷名是容器自带的存放jenkins文件的地方,如果修改为别的路径就会找不到文件,启动jenkins就会退出。
docker 为我们提供了三种不同的方式将数据挂载到容器中:volume、bind mount、tmpfs
。
volume 方式是 docker 中数据持久化的最佳方式。
- docker 默认在主机上会有一个特定的区域(
/var/lib/docker/volumes/
Linux),该区域用来存放 volume。 - 非 docker 进程不应该去修改该区域。
- volume 可以通过
docker volume
进行管理,如创建、删除等操作。 - volume 在生成的时候如果不指定名称,便会随机生成。
1 2 3 |
$ ls /var/lib/docker/volumes b16c452531b4fcf9c5842b5c3b9fd014f096eecdf484f9f1b99ec0e2f1e7784b jenkins |
- volume 在容器停止或删除的时候会继续存在,如需删除需要显示声明。
volume 方式应该是持久化数据的首选方式,我们启动jenkins容器命令中的第二个-v参数是Bind mount,它会覆盖容器中的文件,而volume mount则不会,即如果容器中已有文件,则会将文件同步到主机的目录上 。
二、jenkins的配置
打开浏览器输入http://ip
进入Jenkins登录页面。页面会提示你到服务器的指定位置获取初始化密码。
由于我们是在容器里运行的jenkins,需要进入容器去查看 /var/jenkins_home/secrets/initialAdminPassword
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
在文本框中输入这串密码,点继续
如果是内网,jenkins会报网络连接超时,提示配置代理。
输入代理信息后继续
进入插件安装界面,点击左边的推荐插件 Install suggested plugins 后继续
开始自动安装
创建用后保存并继续,进入首页,可以创建job等任务
默认没有安装maven插件
点击上图中复选框自动重启
安装maven,选择addmaven,然后输入名字,选自动安装,保存
重启jenkins http://ip/restart/