简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。
一、安装docker
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
验证安装是否成功
[root@iZbp10ytibkhq04uznyjwaZ hzdt-ci]# docker version
Client: Docker Engine - Community
Version: 23.0.5
API version: 1.42
Go version: go1.19.8
Git commit: bc4487a
Built: Wed Apr 26 16:18:56 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 23.0.5
API version: 1.42 (minimum version 1.12)
Go version: go1.19.8
Git commit: 94d3ad6
Built: Wed Apr 26 16:16:35 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.20
GitCommit: 2806fc1057397dbaeefbea0e4e17bddfbd388f38
runc:
Version: 1.1.5
GitCommit: v1.1.5-0-gf19387a
docker-init:
Version: 0.19.0
二、安装Jenkins
1.安装Jenkins
执行下面的docker命令安装jenkines,如果8080端口占用,则修改成其他端口.
$ docker run --name jenkins --restart=always \
-v /var/jenkins/:/var/jenkins_home/ \
-v /usr/local/jdk/jdk1.8.0_191:/usr/local/jdk \
-v /usr/local/maven:/usr/local/maven \
-p 8080:8080 \
-p 50000:50000 \
-e JENKINS_UC=https://mirrors.cloud.tencent.com/jenkins \
-e JENKINS_UC_DOWNLOAD=https://mirrors.cloud.tencent.com/jenkins \
-d jenkins/jenkins:lts
安装完成后访问地址-> http://IP:8080,就能打开jenkine
2.初始化Jenkins
2.1 解锁Jenkins
docker exec -it jenkins /bin/bashcat var/lib/jenkins/secrets/initialAdminPassword
2.2 安装插件
安装推荐的插件

2.3 创建管理员用户
创建一个jenkines账户,不要忘记密码了。
三、系统配置
1. 安装需要插件
进入【首页】–【系统管理】–【插件管理】–【可选插件】
搜索以下需要安装的插件,点击安装即可。

安装 Maven Integration安装 Publish Over SSH
(如果不需要远程推送,不用安装)如果使用Gitee 码云,安装插件Gitee(Git自带不用安装)
2. 配置Maven
进入【首页】–【系统管理】–【全局配置】,拉到最下面maven–maven安装

四、创建任务
1. 新建任务
点击【新建任务】,点击构建一个自由风格的软件项目,

2. 源码管理
点击【源码管理】–【Git】,输入仓库地址,添加凭证(gitee的账户和密码,或者公钥),选择好凭证即可。私有仓库需要添加凭证,共有的不需要。


3.构建触发器
点击【构建触发器】–【构建】–【增加构建步骤】–【调用顶层Maven目标】–【填写配置】–【保存】

执行,maven package,看是否能生成jar包
sh /usr/local/maven/maven/bin/mvn package
4. 保存
点击【保存】按钮即可
五、测试
该功能测试是否能正常打包
1. 构建
点击构建按钮

2.查看日志
点击正在构建的任务,或者点击任务名称,进入详情页面,查看控制台输出,看是否能成功打成jar包。
该处日志第一次可能下载依赖jar包失败,再次点击构建即可成功。


3. 查看项目位置
cd var/jenkins/workspace执行,ll命令:即可查看是否编译生成了target目录

六、运行项目
因为我们项目和jenkins在同一台服务器,所以我们用shell脚本运行项目,原理既是通过dockerfile 打包镜像,然后docker运行即可。
修改代码:

1. Dockerfile
在springboot项目根目录新建一个名为Dockerfile的文件,注意没有后缀名,其内容如下:(大致就是使用jdk8,把jar包添加到docker然后运行prd配置文件。详细可以查看其他教程)
# 基础镜像
FROM openjdk:8-jre
# 指定路径
WORKDIR /usr/local
# 复制jar文件到路径
COPY Management-system-0.0.1-SNAPSHOT.jar .
# 启动认证服务
ENTRYPOINT ["java","-jar","-Duser.timezone=GMT+08","Management-system-0.0.1-SNAPSHOT.jar"]
#END
2. 修改jenkins任务配置

配置如下:

-t:指定新镜像名
.:表示Dockfile在当前路径
docker build -t it001/myproject:1.0 /usr/local/
docker rm -f myproject
docker run -d -p 8889:8889 --name myproject it001/myproject:1.0
3. 保存
点击保存即可
4. 构建
查看jenkins控制台输出,输出如下,证明成功!

5. 验证
docker ps查看是否有自己的容器

docker logs
自己的容器名 查看日志是否正确浏览器访问项目试一试





