简述实现步骤:在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/bash
cat 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
自己的容器名 查看日志是否正确浏览器访问项目试一试

复制