场景
DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139491855
Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/128399052
上面流程新建jenkins项目为maven项目,这里使用jenkinsfile文件的形式使用流水线语法进行SpringBoot/Maven项目的打包示例。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
实现
1、Pipeline流水线语法文档
https://www.jenkins.io/zh/doc/book/pipeline/syntax/
2、环境搭建,首先在windows电脑上(这里使用本机演示,尽量使用linux服务器)
新建目录,并新建如下目录,其中jenkins_home用来映射容器内Jenkins的工作目录;tools用来映射容器内离线解压配置jdk和maven等工具
3、Windows上使用Docker Desktop部署jenkins后运行卡顿现象排查
首先按照上面文章部署jenkins容器时不要使用latest的最新版本,而是使用lts的稳定版本。
其次在启动jenkins容器后不进行安装推荐的插件,会导致很多插件的版本与jenkins的版本不对应,
进而导致大量不兼容报错的提示,所以在启动成功之后按需自行安装插件。
4、docker(Docker Desktop)部署jenkins后如何通过解压配置的方式配置jdk
首先下载jdk的tar.gz包,注意这里要下载linux版本的,因为最终是要给容器内jenkins使用。
比如这里下载的为jdk-8u401-linux-x64.tar.gz
然后以管理员模式运行解压软件,这里是使用winrar,然后将上面的jdk的压缩包进行解压。
windows上一定要以管理员模式解压,否则会有问题。
当然如果是在linux上则直接使用解压命令解压即可。
注意解压之后会有一层最外层的目录,将外层目录去掉,最终实现jdk的目录结构为
即将原来的bin所在的目录直接放在tool目录下的java路径下
同理在linux上可以执行如下类似的指令
rm -rf java & mkdir java & tar xzvf jdk-*.tar.gz --strip-components 1 -C ./javajenkins中配置jdk的安装
访问jenkins的页面中系统管理-全局工具配置-JDK安装-不要勾选自动安装,注意这里的别名为jdk,
这个名称需要记住,后续需要与jenkinsfile中tool配置时一致。
然后注意这里的JAVA_HOME路径为:/tool/java
5、docker(Docker Desktop)部署jenkins后如何通过解压配置的方式配置maven
同上面解压jdk同样,下载maven的压缩包并解压至tool下maven目录下,使bin目录所在的目录直接就在
tool/maven下。
修改maven的配置文件,修改上面conf下settings.xml中的配置项。
比如修改仓库地址,首先在容器映射路径下tool下新建repo目录,然后修改settings配置文件中localRepository的路径为
/tool/repo
比如修改镜像源为aliyun仓库地址,这里不再赘述,其实就是对maven的配置文件进行修改,比如可以拿本地开发调试用的maven的配置文件进行修改和替换。
访问jenkins的页面中系统管理-全局工具配置-Maven安装-不要勾选自动安装,注意这里的别名为maven
这个名称需要记住,后续需要与jenkinsfile中tool配置时一致。
然后注意这里的MAVEN_HOME路径为:/tool/maven
6、插件安装
配置完以上jdk与maven之后,需要安装必须的插件。
这些需要安装Git plugin、Maven Integration、Pipeline(流水线插件)、Localization:Chinese(Simplified)中文语言包汉化插件、Pipeline:Stage View Plugin插件(流水线图形化插件)、Gitee(这里代码存放在Gitee上)。
以上插件以及其他插件的安装根据个人需求进行安装。
确保拉取代码并打包的必须的插件安装即可。
7、配置流水线项目
新加项目-安装pipeline插件后会有流水线项目选项
然后配置gitee代码地址
接下来配置git以及凭证等
定义流水线为Pipeline script from SCM,然后SCM为Git,配置仓库地址以及拉取代码的凭证,这里使用的是账户密码,当然也可以使用其他
ssh公钥私钥、giteeapi令牌等方式。
添加凭证直接点击添加
然后继续往下配置Jenkinsfile的路径,这里配置项目根目录下,然后在gitee远端代码仓库根目录下新建Jenkinsfile文件
这样的目的是使流水线的配置文件可以被版本管理起来,方便修改和维护。
修改文件内容如下
pipeline {
agent any
tools {
maven 'maven'
jdk 'jdk'
}
stages {
stage('编译构建') {
steps {
sh 'mvn clean package -DskipTests'
}
}
}
post {
always {
echo '构建结束,结果:'
}
success {
echo
'构建成功'
}
failure {
echo '构建失败'
}
}
}
流水线的具体语法参考上面,这里这里的tools中与上面配置jdk和maven时配置的别名一致。
8、构建流水线项目
点击立即构建,第一次构建时间较长,因为需要下载依赖,然后构建完成可以查看日志确认
并且到容器内与容器外映射的路径的jenkins_home/workspace/server_test(这里是新建的任务名)下面对应的jar包路径下去确认。
后续拿到jar包之后需要什么其它操作,就是根据需求自行实现了。比如可以实现通过ssh发送jar包并实现更新操作等。