docker 容器jekins 部署springboot
1.安装jekins
拉取jenkins镜像
docker pull jenkins/jenkins
2.创建文件夹/usr/local/jenkins
mkdir /usr/local/jenkins
3.给/usr/local/jenkins 权限
chmod 777 /usr/local/jenkins
4.创建容器并运行
docker run -p 8033:8080 -p 50000:50000 -v /usr/local/jenkins:/var/jenkins_home --name jenkins -idt docker.io/jenkins/jenkins
5.开放防火墙
firewall-cmd --zone=public --add-port=8033/tcp --permanent
firewall-cmd --zone=public --add-port=50000/tcp --permanent
6.刷新防火墙
firewall-cmd --reload
7.得到管理员密码
cat /usr/local/jenkins/secrets/initialAdminPassword
8.访问 ip地址:8033即可
2.jekins 操作
2.1 安装maven,gitee插件

2.2
我这里已经安装过了,



2.3配置环境

2.3.1 java

获取java_home

2.3.2 maven
如下即可

3、构建一个实例







如下即可添加

build选项

在成功打包后执行 shell脚本

脚本内容,看注释
#!/bin/bash
#服务名称
SERVER_NAME=ruoyi
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,这里使用jar包,用java -jar 命令执行
JAR_NAME=ruoyi
# 源jar路径
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/woss_web/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/woss_web/work_daemon/
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
kill -9 $id
echo "killed $id"
done
echo "结束进程完成"
#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &
保存即可

构建遇到的问题
docker 容器内执行命令没有权限
docker exec -u 0 -it 容器id /bin/bash
shell 脚本报错没有ps命令安装 ps命令
进入jekins容器 安装
docker exec -u 0 -it 容器id /bin/bash
apt-get update && apt-get install procps
日志文件操作错误

问题:
因为项目在jekis容器内部运行,所以我们的项目没办法进行日志记录操作,
解决思路:
因为最开始jekins容器的目录和和宿主机(服务器)的目录挂载了,所以我们可以将日志目录修改一下
宿主机目录:/usr/local/jenkins
刚开始运行jekins的命令
docker run -p 8033:8080 -p 50000:50000 -v /usr/local/jenkins:/var/jenkins_home --name jenkins -idt docker.io/jenkins/jenkins

docker 容器 端口动态映射

我们的项目部署完成了,但是通过ip:9000访问不到,这是因为我们的jenkins容器端口只是映射了8033和50000端口,但是我们的项目端口是9000,导致无法访问,我们可以通过以下命令解决
本文介绍了如何在Docker容器中部署Jenkins并构建SpringBoot应用,包括安装Jenkins、配置环境、添加构建任务。在遇到权限、命令缺失和日志记录问题时,提供了相应的解决方案,如修改容器权限、安装缺失命令和调整日志目录以利用宿主机挂载的目录。此外,还提到了项目端口映射的问题及其解决方法。

547

被折叠的 条评论
为什么被折叠?



