Docker下Jenkins打包java项目并部署

docker 构建Jenkins

sudo docker run --name=zen_haslett  --user=jenkins  --privileged=true  --volume=/home/cyf/server/jenkins/jenkins_home:/var/jenkins_home   -v /usr/lib/jvm/java-17-openjdk-amd64:/usr/lib/jvm/java-17-openjdk-amd64  -v /usr/lib/maven/apache-maven-3.8.8:/usr/lib/maven/apache-maven-3.8.8     -p 50000:50000  -p 49999:8080 -p 8087:8087   --restart=always -d   jenkins/jenkins:2.362-jdk17

注意:需要把打包项目的端口 用-p映射出来,例如我项目是8087就 -p 8087:8087

jenkins 的jdk版本最好和要打包的项目一致,坑太多了
参考:又一本 Jenkins 书
在这里插入图片描述
常用的Docker命令
docker ps -a
用于列出所有容器(包括已停止的容器)不带-a 则只是运行中的
docker stop <container_id>
停止一个或多个正在运行的容器
docker rm <container_id>
删除一个或多个容器
docker pull
拉取映像
例如:安装一个redis

(base) beavers@beavers-home:/home/cyf/server$ docker pull redis
(base) beavers@beavers-home:/home/cyf/server$ sudo mkdir ./redis
(base) beavers@beavers-home:/home/cyf/server$ sudo mkdir ./redis/data
(base) beavers@beavers-home:/home/cyf/server$ sudo touch ./redis/redis.conf

docker run -p 6379:6379 --name redis  --privileged=true  --restart=always -v /home/cyf/server/redis/redis.conf:/etc/redis/redis.conf -v /home/cyf/server/redis/data:/data -d redis redis-server /etc/redis/redis.conf
# Redis配置文件
  
# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonize no

# 指定Redis监听端口,默认端口为6379
port 6379

# 绑定的主机地址,不要绑定容器的本地127.0.0.1地址,因为这样就无法在容器外部访问
bind 0.0.0.0

#需要密码则打开
# requirepass mima

# 持久化
appendonly yes

docker exec
在正在运行的容器内执行命令,docker exec -it <container_id> /bin/bash

安装Maven插件

在这里插入图片描述
如果没有合适的版本,需要手动去Maven Integration 下找到合适的版本,下载后在Deploy Plugin 下上传
在这里插入图片描述

新建一个Maven项目

在这里插入图片描述

设置

添加JDK

在这里插入图片描述
可以不添加,Jenkins 自带

添加Maven

在这里插入图片描述
可以不添加,Jenkins 自带

设置源码地址

在这里插入图片描述
Credentials 为拉取代码时的凭证

Build

在这里插入图片描述

打包后运行

选择执行Shell
在这里插入图片描述

#!/bin/bash
echo "开始启动jar包"
export  BUILD_ID=dontKillMe

#指定最后编译好的jar存放的位置 即是发布目录
www_path=${WORKSPACE}/javaProject

echo "日志目录 ${www_path}"
#Jenkins中编译好的jar名称 
jar_name=ai-his-0.0.1-SNAPSHOT
app_jar=${jar_name}.jar

LOG_PATH=${www_path}/logs/${jar_name}.log

if [ ! -d "${www_path}" ]; then
 mkdir ${www_path}
 mkdir ${www_path}/logs
fi
#杀掉以前的进程
echo "Stopping tooldin-mq"
pid=`ps -ef | grep  ${app_jar} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi

#打包后jar的路径,默认是target下
cp /var/jenkins_home/.m2/repository/com/beaver/ai-his/0.0.1-SNAPSHOT/ai-his-0.0.1-SNAPSHOT.jar ${www_path}
cd  ${www_path}
echo "Execute shell Finish"
nohup java -Djasypt.encryptor.password=Qazwsx@123  -jar ${app_jar} > ${LOG_PATH} & 


sleep 2
newPid=$(pgrep -f $app_jar)
echo "线程正常启动pid:$newPid"


  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于使用Jenkins进行Java项目的持续构建和部署,以下是一些基本的步骤和配置: 1. 安装Jenkins:首先,您需要安装Jenkins并确保其成功运行。可以从Jenkins官方网站下载安装程序并按照指示进行安装。 2. 配置Java环境:在Jenkins服务器上,确保已经正确安装和配置了Java开发环境。您可以通过在终端或命令提示符中运行`java -version`来验证Java环境是否正确设置。 3. 创建一个新的Jenkins Job:登录到Jenkins管理界面,点击"New Item"创建一个新的任务。选择"Freestyle project"作为项目类型。 4. 配置源代码管理:在"配置"页面的"源代码管理"部分,选择您的代码托管平台(如Git或SVN),并提供您的项目的代码仓库URL和凭据信息。 5. 配置构建触发器:在"配置"页面的"构建触发器"部分,选择适当的触发器。例如,可以选择定期构建,或者在代码提交时触发构建。 6. 配置构建步骤:在"配置"页面的"构建"部分,添加构建步骤以构建和部署您的Spring Boot项目。以下是一些常见的步骤: - 使用Maven或Gradle构建项目:使用Maven或Gradle构建您的项目。您可以在"构建"部分的"添加构建步骤"中选择适当的构建工具,并提供构建命令或任务。 - 打包可执行JAR文件:使用Maven或Gradle将项目打包为可执行的JAR文件。 - 部署项目:使用适当的部署工具(例如Docker、Tomcat等)将打包的JAR文件部署到目标环境。 7. 保存并触发构建:保存Jenkins任务配置,并手动触发第一次构建以验证配置是否正确。您可以单击任务页面的"立即构建"按钮来手动触发构建。 这些是基本的步骤和配置,您可以根据您的项目需求进行相应的调整和扩展。希望对您有所帮助!如果您有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值