Windows中Jenkins容器从零起步
前言
这里会分享一下windows中使用docker来部署jenkins容器的一些经验和踩的坑,网上有一些关于这方面的内容的,但是我还是遇到了不少问题,然后慢慢解决了,借此分享一下自己的经验。
本篇会介绍一下需要准备的东西,介绍的内容比较笼统,如果之后有询问的人,我会仔细介绍一下每一步的详细内容,包括遇到的一些问题,如何解决等等。
环境准备
- OS系统,本篇使用windows10
- 安装Docker,并注册dockerhub账号
- 注册github,并初始化一个java项目(之后在jenkins编译的时候会使用)
- 安装intellij或者vs code用来编写Dockerfile,本片使用intellij
- Jenkins配置
- Jenkins创建新项目
windows10的系统
准备一个windows10系统,能够连网就可以,内存和磁盘空间稍微需要大点的,不然之后运行起来会有点慢,docker和intellij挺吃内存的。
安装Docker,并注册dockerhub账号
可以去这里下载windows的安装文件,也有其它系统的安装文件下载。
然后需要注册一个dockerhub的账号,软件安装完毕之后,可以用账号登录,然后就能在dockerhub上pull所有的镜像了,非常方便,之后你生成的镜像也能够随时上传到你的账号下面。
注册github,并初始化一个java项目
这个步骤是用于之后创建jenkins项目的时候,能够可以直接clone github上的项目,然后来做各项操作的,如果没有github账号的话,可以手动在容器中添加项目,然后用jenkins来编译。
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
使用intellij编写Dockerfile,并生成image以及创建容器来运行
intellij中可以安装docker插件来连接Docker Desktop程序,然后你所有新建的镜像以及容器都能够在intellij中看见,这个能够使开发更便捷,效率更高。
配置Jenkins以及创建新项目
jenkins系统的系统管理模块如下,这里会列出来(基本上)所有重要的一些配置项:
系统配置
-
系统配置: 配置全局设置和路径
这里可以显示,配置一些一些jenkins系统的变量,比如jenkins的主目录,启动的url,邮件服务器,时间格式,监控等,还可以手动设置一些系统变量,这些变量在之后的系统配置中都可以调用。Github服务器也可以在这里配置,这里需要使用github上面的personal access token来配置链接。 -
全局工具配置: 工具配置,包括它们的位置和自动安装器
这里配置的东西就比较多了,可以配置maven,配置java,甚至选择java自动安装,但是我更倾向于手动配置。也可以在安装相应的插件以后,配置git, gradle, ant -
插件管理: 添加、删除、禁用或启用Jenkins功能扩展插件。
这里就比较简单了,有4个页面可以分辨显示可升级插件,可用插件,已安装插件以及高级设定,在高级设定中,可以将升级站点的url设置为国内站点,使用默认站点的话,安装,更新插件速度都很感人。 -
节点管理
添加、删除、控制和监视系统运行任务的节点。
这里就可以添加其它服务器作为节点了,jenkins建议是master节点executors设置为0,当然如果只是单机运行的话,那么就不用在意这个了。
安全
-
全局安全配置: Jenkins 安全,定义谁可以访问或使用系统。
这里可以配置是否显示登录页面记住我的选项,用户信息存储的数据库等,建议非高级用户的话,使用jenkins默认设置就可以了。配置挺多的,Git Hooks,SSH Server在安装完相应的控件之后也可以配置,如果需要通过github来触发jenkins项目的话,需要定义Git Hooks,但是想要激活github的这个功能的话,需要是付费用户。SSH Server是用于配置节点的,当用户想使用公钥,密钥来配置节点的话,就需要安装这个插件。 -
Manage Credentials
Configure credentials -
凭据配置 : 配置凭据的提供者和类型
这里是配置用户对于生成凭据类型的时候可选择的类型,没有特殊要求也不需要修改。选择默认选项全部可见就可以了。 -
管理用户: 创建、删除或修改 Jenkins 用户
这里也比较简单了,可以创建、删除或修改用户,这个用户可以用于jenkins登录,然后一些其它的相关信息,比如这个账户执行了哪些项目等等。 -
Script Approval
看介绍就是admin用户可以审核一些在jenkins中所使用的脚本,具体没有使用过,不能做详细介绍。
状态信息
- 系统信息 :显示系统环境信息以帮助解决问题。
这个是一个很有用的页面,这里能显示 系统属性,环境变量,插件,Memory Usage,Thread Dumps,是非常有用的一个信息库 - 系统日志:
系统日志从java.util.logging捕获Jenkins相关的日志信息。
这里可以配置系统的日志,级别,然后归类显示需要的日志信息 - 负载统计:检查您的资源利用情况,看看是否需要更多的计算机来帮助您构建。
这个就没有什么可以介绍了,就是jenkins服务器的运行状态。 - 关于Jenkins: 查看版本以及证书信息。
可以查看jenkins版本以及Maven相关依赖,静态资源,插件的许可和依赖
问题排查
- 管理旧数据:从旧的、早期版本的插件中清理配置文件。
当jenkins默认用户数据库,版本有变动的时候,在这里就可以对于遗留数据进行处理
工具和动作
-
读取设置:放弃当前内存中所有的设置信息并从配置文件中重新读取 仅用于当您手动修改配置文件时重新读取设置。
当jenkins配置修改的时候,建议在这里重新启动一下Jenkins服务,来加载变动。 -
Jenkins 命令行接口:从您命令行或脚本访问或管理您的Jenkins。
在这里就可以通过使用 jenkins-cli.jar 然后在命令行对于jenkins进行操作,具体的配置,命令在本页中都有具体介绍 -
脚本命令行: 执行用于管理或故障探测或诊断的任意脚本命令。
这里的话就可以直接执行脚本了,命令在2中都有介绍,可以用于初期学习,开发 -
准备关机: 停止执行新的构建任务以安全关闭计算机。
关闭jenkins服务
Jenkins创建新项目
Jenkins新建一个简单的任务是非常简单的,这里简单介绍一下。
-
进入jenkins主页面,点击左侧导航栏新建任务
-
然后会进入的新建页面,填入项目名称,对于初学者可以选择第一个项目类型,自由风格,然后点击确定按钮
-
确定之后会进入项目设置界面,
这个界面中可以配置git,然后是否丢弃旧的构建信息,还有一个很有用的是参数化构建的配置,你可以配置各种类型的参数,当任务启动的时候,可以手动选择所给的参数,然后项目中可以根据给入的参数做相应的工作。我自己的git是配置在源码管理这一栏中的,给个截图吧:
我把我自己的项目名称等隐去了,大家可以自己填入你自己的项目,前提是你需要在之前的系统配置中配置好的github,那里是配置github的链接权限,这里是配置源码项目信息,之后在构建步骤中,如果对于github项目有操作,会先尝试链接github,然后clone或者pull项目代码。
然后可以配置项目构建触发的条件,比如定时,脚本,或者相关项目构建后触发等,Github hook的触发的话,需要在github中激活hook功能,这个需要是收费会员才有的功能。
构建环境就不多说了,选择相应的选项就好,但是有时候会出现一些奇怪的cache问题的话,可以将第一个选项,清除workspace打上勾。*
然后就是具体的构建步骤的配置了,看图:
在这个测试项目中,我就尝试打印一下JENKINS_HOME的值,以及显示一下java的版本。
这个使用shell执行就可以了,步骤类型也是有很多可以选择,具体看需要。
最后是一步就是构建后的操作,可以发布,发送提醒邮件,清空workspace等各个操作,按需要配置就可以了。
以上就是Jenkins项目构建的大致步骤。
之后如果有空,每个步骤我都争取详细分享一下。