【随手记录】docker部署jenkins,集成maven、spring项目

1、下载镜像文件到服务器

docker pull jenkins/jenkins:lts-jdk17

或离线导入镜像:

docker load -i jenkins-lts-jdk17

检查镜像是否导入:

docker images|grep jenkins

jenkins/jenkins    lts-jdk17   7a7add0bf3da   2 weeks ago   470MB

2024年6月以后国内很多大型的Docker镜像站都停止了服务或改为内部使用,

具体已经停止服务的以及可用的镜像列表可以在这里找到:

https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6

2、创建文件夹/var/jenkins_home,用来存放jenkins的工作空间数据(路径、文件夹名称可以根据现场情况修改)

cd /var && mkdir jenkins_home

3、启动容器

使用docker run命令启动jenkins容器:

docker run -d -p 8080:8080 -p 50000:50000   

-v /home/jenkins_home:/var/jenkins_home   

-v /etc/localtime:/etc/localtime   

-v /usr/bin/docker:/usr/bin/docker   

-v /var/run/docker.sock:/var/run/docker.sock  

-v /home/apache-maven-3.9.9:/var/apache-maven-3.9.9  

-v /home/maven_repository:/root/.m2/repository  

-v /home/jdk1.8.0_151:/var/jdk1.8.0_151

--restart=on-failure   

-u 0   

--name jenkins   

jenkins/jenkins:lts-jdk17

注意:

  • 根据实际情况调整挂载目录、开放端口:
  • /etc/localtime为了让容器内部时间和宿主服务器保持一致
  • /usr/bin/docker为了让容器内部可以使用docker命令
  • /var/run/docker.sock 为了让容器内的Docker客户端能够与宿主机的 Docker 守护进程通信
  • -u 0为了确保容器内的 Jenkins 有足够的权限执行需要的操作,以 root 用户(UID 0)身份运行容器。
  • /var/jenkins_home 为jenkins工作空间目录,备份该目录数据即可实现jenkins数据备份迁移
  • /home/apache-maven-3.9.9、/home/maven_repository为挂载的maven和maven类库
  • /home/jdk1.8.0_151该镜像内自带jdk17环境,如果想更改jdk版本,可以通过-v挂载jdk部署包并在系统里配置java_home路径

4、解锁jenkins

第一次打开jenkins系统需要配置密码,从/var/jenkins_home/secrets/initialAdminPassword

目录获取:

5、配置插件

新手建议安装推荐的插件,后续根据需求再调整插件

6、创建管理员账户

账户创建完成之后,步骤四的initialAdminPassword账户即删除,无效!

7、部署完成

8、补充所需插件  

需要用到maven、svn等插件,具体插件清单如下:

  • Subversion  --从SVN中获取代码
  • Maven Integration  -- 编译项目
  • Docker plugin  -- 用于节点管事中的 Docker 维护
  • docker-build-step  -- 用于 Build/Publish Docker Image
  • SSH -- 用于远程执行服务器上的命令

9、配置docker服务

如果是jenkins本地docker无需额外配置,如果是远程服务器docker,可以通过ssh插件执行docker命令或者通过docker cloud插件调度远端docker 

10、新增maven项目    

新增maven项目之前,需要配置好maven,再系统管理-全局工具配置里设置maven工具信息:

然后点击新增Item,选择”构建一个maven项目“,正式开始项目配置:

配置svn源码信息:

 

 

配置触发器,什么条件下触发执行,定时器采用linux的cron定时规则:

编译配置:  

执行脚本,本地打docker镜像

 

 

11、测试执行,完成

posted @ 2024-09-25 11:09  空知大仙人  阅读(132)  评论(0编辑  收藏  举报