Jenkins 是一款非常流行的开源持续集成工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。
有关 Jenkins 的详细介绍,可以查看官网:https://www.jenkins.io
本篇博客主要介绍如何通过 docker-compose 快速部署 Jenkins 工具,也让大家避免踩坑
我的 CentOS7 虚拟机 ip 地址是 192.168.136.128,已经安装好了 docker 和 docker-compose
一、安装 JDK 和 Maven
我采用下载离线安装包,解压缩,配置环境变量的方式进行安装,这样比较方便
从官网上下载 JDK:https://www.oracle.com/java/technologies/downloads
从官网上下载 Maven:https://maven.apache.org/download.cgi
注意:目前新版本的 Jenkins 要求 JDK 的版本是 11、17、21,因此我下载的 JDK 版本是 17
我下载后的 JDK 文件名是:jdk-17_linux-x64_bin.tar.gz ,下载的 Maven 文件名是:apache-maven-3.9.6-bin.tar.gz
将文件上传到虚拟机的 /app 目录下,进行解压缩,然后将解压缩后的目录重命名为 jdk 和 maven
在 /etc/profile 文件的末尾,添加如下内容:
JAVA_HOME=/app/jdk
MAVEN_HOME=/app/maven
PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
然后运行 source /etc/profile
重新加载环境变量
运行 java -version
和 mvn -version
命令,如果可以看到版本号,则表明已经安装成功
最后总结一下:我在虚拟机上安装的 JDK 目录是 /app/jdk ,安装的 Maven 目录是 /app/maven
这两个目录比较重要,后面需要作为 docker 容器的挂载目录,映射到 Jenkins 的 docker 容器内部,用于配置 Jenkins
二、部署 Jenkins
首先在虚拟机上创建目录 /app/jenkins,在其内部创建 data 目录和 docker-compose.yml 文件
设置目录的权限为 777,运行命令:chmod 777 /app/jenkins/data
注意:设置目录权限为 777 不能省略,否则 Jenkins 启动后由于没有权限写入文件而导致一些问题
然后访问 Jenkins 官网查看最新的 LTS 版本(LTS 是长期支持的版本),网址是:https://www.jenkins.io/download
当前我看到的最新版本是 2.440.1,我就使用这个版本的 docker 镜像
注意:最好使用最新版本的镜像,因为老版本部署后会出现无法安装插件的问题,主要是插件不支持老版本的 Jenkins
在 /app/jenkins 目录下编写 docker-compose.yml 文件,内容如下:
version: "3.5"
services:
jenkins:
# 这里的版本号,使用从官网上查看的最新 LTS 版本号
image: jenkins/jenkins:2.440.1
container_name: jenkins
privileged: true
restart: always
ports:
# web访问端口
- "8066:8080"
# 基于JNLP的Jenkins代理端口
- "50000:50000"
volumes:
# jenkins的数据和配置文件目录映射
- /app/jenkins/data:/var/jenkins_home
# 将外部的jdk目录映射到容器内部
- /app/jdk:/usr/local/jdk
# 将外部的maven目录映射到容器内部
- /app/maven:/usr/local/maven
最后运行 docker-compose up -d
命令启动服务,需要注意的时,Jenkins 服务启动速度比较慢,可能需要 2 分钟
三、验证访问
在 docker-compose.yml 中,我们映射到外部的 web 访问端口是 8066,因此访问 http://192.169.136.128:8066
使用 docker logs -f jenkins
从打印出来的日志中,找到首次登录所需的管理员密码
也可以从映射出来的目录中 /app/jenkins/data/secrets 查看 initialAdminPassword 文件获取密码
登录成功后,进入到如下界面,选择哪个都一样,安装默认的插件即可
如果你使用的最新版本 LTS 的 docker 镜像部署 Jenkins 的话,不会出现无法安装插件的问题,插件下载安装的速度也很快
安装完成后,就跳转到创建管理员用户的界面,我这里创建一个用户 qiao 密码为 123456
然后就进入到实例配置页面,保持默认的 Jenkins 访问地址即可,然后就进入 Jenkins 首页了
四、安装插件
在左侧点击 Manage Jenkins 菜单,然后右侧点击 Plugins 进入到插件管理界面
然后在左侧选择 Avaiable Plugins 菜单,搜索想要安装的插件,一般情况下我们需要安装上 Git Parameter 和 Publish Over SSH 插件
找到并勾选所需插件后,点击安装,在界面底部勾选【安装完成后重启】即可
五、全局工具配置
安装完插件重启 Jenkins 后,web 界面的汉化,似乎更好了一些
从左侧点击【系统管理】菜单,右侧点击【全局工具配置】进入到新界面
这里主要配置 jdk 和 maven 在 docker 容器内的路径
JDK 配置如下所示:
Maven 配置如下所示:
到此为止,docker-compose 部署 Jenkins 的相关细节已经介绍完毕,这里仅仅介绍如何快速部署,后续如果用到了,再详细介绍。