作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。
本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快、更好的入门JAVA后端开发工作。
文章目录
- 一、前言
- 二、下载&安装
- 三、配置
- 四、总结
一、前言
本文介绍在Linux环境下使用Docker方式如何安装Jenkins。
-
Jenkins是什么?
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。它是基于Java开发的一种CI持续集成、CD持续部署工具,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它的前身Hudson是一个可扩展的持续集成引擎,可用于自动化各种任务,如构建,测试和部署软件等等。
Jenkins官网地址:https://www.jenkins.io/zh/
二、下载&安装
首先,从Jenkins官方Docker镜像仓库中,下载Jenkins的镜像安装包。
Jenkins官方Docker仓库地址:https://hub.docker.com/r/jenkins/jenkins
从官网上可以看到,当前最新的稳定版本是 jenkins/jenkins:lts-jdk17。
所以,我们这里,执行docker pull命令,下载该版本的Jenkins的镜像安装包;
docker pull jenkins/jenkins:lts-jdk17
之后,新增一个Jenkins的工作目录;
mkdir -p /docker/jenkins_home
之后,设置Jenkins工作目录的文件权限,即设置文件的属主或者拥有者为Jenkins。(PS:因为"docker"用户在宿主机上的uid默认是"1000")
chown -R 1000 /docker/jenkins_home
之后,执行docker run命令,开始安装Jenkins。
docker run -d \
-p 8888:8080 \
-p 50000:50000 \
-v /usr/bin/docker:/usr/bin/docker \
-v /docker/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--privileged=true \
--restart=always \
--name=jenkins \
jenkins/jenkins:lts-jdk17
命令参数详解如下:
- -run -d :后台运行容器;
- -p 8888:8080 将容器的 8080 端口映射到服务器的 8888端口上;
- -p 50000:50000 将容器的 50000 端口映射到服务器的 50000 端口上;
- -v /usr/bin/docker:/usr/bin/docker 将容器中 docker目录挂载到宿主机上,方便调用宿主机的docker命令;
- -v /docker/jenkins_home:/var/jenkins_home 将容器中 Jenkins 的工作目录挂载到宿主机上;
- -v /etc/localtime:/etc/localtime 设置容器使用跟宿主机同样的时间设置;
- –privileged=true 赋予容器root权限,便于进入容器;
- -restart=always 设置容器自动重启;
- -name=jenkins 给容器起的别名;
- jenkins/jenkins:lts-jdk17 镜像名称加版本号;
之后,安装完成,可以使用docker ps命令,查看Jenkins容器的运行状态;
docker ps
如果Jenkins容器状态显示为UP,表示Jenkins启动成功。
三、配置
安装完成后,下面开始配置。
在开始配置之前,首先,修改Jenkins插件下载源地址,设置为国内的镜像源地址,比如清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json (PS:这个很重要,否则会导致插件安装失败。)
cd /docker/jenkins_home
vi hudson.model.UpdateCenter.xml
之后,登录阿里云控制台,设置ECS安全组规则,对外开放8888端口访问。(PS:因为我们在上面的安装过程中,把Jenkins的8080端口映射到宿主机服务器上的8888端口了。所以对外开放8888端口的访问,后续浏览器才能正常访问Jenkins页面。)
之后,打开浏览器访问Jenkins,进入Jenkins配置引导界面。(PS:地址,http://你的ECS服务器外网IP地址:8888。)
如上图所示,解锁Jenkins,需要管理员密码。
之后,使用docker ps命令,查看你的Jenkins容器ID。
docker ps
之后,使用docker logs命令,查看管理员密码。
docker logs 你的Jenkins容器ID
之后,在安装引导页面中,输入上图中管理员密码,点击继续,进入插件安装页面,点击安装推荐的插件;
之后,进入安装插件进度界面。
之后,插件安装完成,开始创建管理员用户,输入用户的账号信息,点击保存并完成。
之后,进入实例配置界面,建议使用默认值,点击保存并完成。
之后,提示“Jenkins已就绪”,点击开始使用Jenkins。
至此,Jenkins安装配置完成了,系统自动登录并进入Jenkins控制台主页面。
至此,Jenkins安装配置完成了。
四、总结
以上介绍了在Linux环境下使用Docker方式如何安装Jenkins。
在Jenkins安装的过程中,出现了插件安装失败的错误。由于需要安装的插件的数量很多,如果手动安装的话,确实很痛苦。所以,这里整理一下插件安装失败错误的解决方案。
错误描述如下:
在Jenkins的安装配置引导页面,安装推荐的插件时,出现部分插件安装失败错误。
另外,当点击继续跳过后。登录Jenkins控制台,在插件管理页面,可用的插件列表中,出现很多红色的警告信息。
Warning: This plugin is built for Jenkins 2.361.4 or newer. Jenkins will refuse to load thisplugin if installed.
解决方案如下:
首先,需要选择合适的Jenkins的镜像版本,建议下载最新的稳定版本。这样的在自动安装插件时,可以避免出现Jenkins版本过低的问题。比如这里选择Jenkins官网发布的 jenkins/jenkins:lts-jdk17版本的docker镜像。
之后,在Jenkins容器启动成功后,及时修改插件的镜像源地址为国内的镜像源地址。这样在安装配置引导页面,自动安装插件时,可以从国内的镜像源中快速的下载插件。比如,这里修改镜像源地址为清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。