Docker创建Jenkins容器自动部署maven项目经验

1.明确中心

首先一定要清楚Jenkins到底是干嘛用的,通俗来讲,Jenkins就跟它的图标是一样的,就是一个代码管家,只要我们把代码上传到托管的网站,比如gitee、github等,它就可以自动帮我们完成

pull代码-->构建jar包 -->创建docker镜像-->部署docker容器

的一系列过程,只要明白中心,知道该干什么,在中途就不会迷茫。

 2.前面的准备工作

一定要确定Jenkins的版本,要正确的版本才能正常使用,作者在这吃了大亏!!

我用的是:

2.1 拉取Jenkins:

docker pull jenkins/jenkins:2.289.3-centos

2.2 在本机创建jenkins_home 文件夹用来挂载docker里面的jenkins_home,方便后面操作

mkdir -p /docker/jenkins_home

2.3 改变jenkins_home文件夹权限

chown -R 1000:1000 /docker/jenkins_home

2.4 改变docker.sock权限,赋予读写

chmod 777 /var/run/docker.sock

2.5 下载maven

https://dlcdn.apache.org/maven/maven-3/3.8.3/source/apache-maven-3.8.3-src.zip

windows下载完毕后,上传到linux服务器

/docker

文件夹下面,并且解压( unzip ***.zip ),不会的百度、bing

2.6 创建 /docker/jenkins_home/Dockerfile 文件 (在linux本机)

FROM java:8-alpine

LABEL maintainer="cick-y@foxmail.com"

ADD smart-iot-monitor-1.0.jar app.jar

ENTRYPOINT ["java", "-jar","/app.jar"]

 maintainer : 作者名字

smart-iot-monitor-1.0.jar : 打包的jar包名称

其他照抄

2.7 创建 /docker/jenkins_home/test.sh 文件 (在linux本机)

文件内容如下:

docker version

cd /docker/jenkins_home
rm /docker/jenkins_home/workspace/Test/projectManage/target/Dockerfile
echo Y
cp /docker/jenkins_home/Dockerfile /docker/jenkins_home/workspace/Test/projectManage/target
echo Y
cd /docker/jenkins_home/workspace/Test/projectManage/target/

cid=$(docker ps -a| grep "smart-iot-monitor")
if [ "$cid" != "" ]; then
        docker stop smart-iot-monitor
        docker rm smart-iot-monitor
fi
echo "docker ps id"
echo $cid
images=$(docker images| grep "smart-iot-monitor" | awk '{print $3}')
if [ "$images" != "" ]; then
        docker rmi $images
fi
echo "docker images id"
echo $images
docker build -t smart-iot-monitor:1.0 .
newimages=$(docker images| grep "smart-iot-monitor" | awk '{print $3}')
docker run -itd --name smart-iot-monitor -p8080:8080 $newimages

 projectManage : 项目名称

 docker build的镜像和容器名字

3.开始

3.1 运行docker容器

docker run -itd --name jenkins -p 8088:8080 -p 8089:50000 -p 8090:25 -v /docker/jenkins_home:/var/jenkins_home -v /docker/apache-maven-3.8.3:/var/mvn -v /var/run/docker.sock:/var/run/docker.sock -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 "imagesId"

说明:

-itd : 交互、后台的选项

--name : 容器的名字

-p : 映射的三个端口, 格式(主机端口 :映射的容器内部端口)

-v : 挂载文件夹, 格式(主机文件夹:挂载容器内部的文件夹)

     注意:看前面两个-v选项的挂载目录,一定要对!

"imageId" : 要改的,这是你的镜像id

3.2 输入密码

前面docker run 命令启动成功后,浏览器地址栏输入

http://xx.xx.xx.xx:8088

就可以进入jenkins了。

 密码已经告诉我们了,因为前面挂载了jenkins_home 的目录,可以直接在linux本机输入

cat /docker/jenkins_home/secrets/initialAdminPassword

出来的那串数字混合英文就是password

3.3 前期配置

新手都选择 “安装推荐的插件” 这一选项

 等待安装完后,配置用户名密码

 进入Jenkins首页

点击  系统管理–>插件管理–>可选插件   

 

搜索并安装

 注意:maven 跟 docker 插件安装前,可能没有plugin后缀

 选择后,点击

 然后点击(我已经安装好了,没有去加载,所有比较空)

 3.4 系统配置

 重启后,点击 系统管理-->全局工具配置

然后如下图配置maven,maven的settings.xml大家自己去配置阿里云镜像,不会的百度

 点击新增jdk

 根据自己需要的jdk版本配置

 如果是第一次,这里会有个超链接,点进去输入Oracle的账号密码才能下载。

 配置maven

 MAVEN_HOME 是根据之前的docker run 的挂载目录。

配置docker

名字随便取,Installation root 值为

unix:///var/run/docker.sock

点击应用,保存

 3.5 系统配置

回到主页,点击 系统管理-->系统配置

 滑倒最底部,有个publish over SSH,点击新增

 

 Passphrase : ssh连接的密码

Name : 名字

Hostname : ip地址

Username: 连接用户

保存

好啦,到这里就配置差不多啦。

4. 创建项目

这里的名称只是随便取的,下面的步骤对应的是Test 的任务名称,我懒得截图了

 点击确定,接下来的选项,如果我没有放图,那就是不选。

指定你的分支

 选择 轮询SCM ,以下代码表示每五分钟巡查一次gitee仓库,如果有改动,就执行构建

H/5 * * * * 

以下画圈的部分,表示你pom.xml的位置,是根据你git仓库的代码来判断的

echo "——————build sucsses!——————"
cd /var/jenkins_home/workspace/Test/projectManage/target/

 到了这里,我们已经构建成功了,接下来就是用SSH连接服务器,再使用.sh 文件部署docker的部分

还是在原来的配置界面

 有一些属性名称并没有汉化,但是大家可以自行翻译,根据我的路径来就可以了,在这里大家的路径都不一样,我就不贴路径代码了。

 这个test.sh 文件,就是我开头写的那个test.sh文件,好好研究一下,我都是土办法。

保存运行

 完成!!

———————————————————————————————————————————

花了我两天时间才研究透,😓.......

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值