【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能

这篇具有很好参考价值的文章主要介绍了【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建,服务重启,服务发布的功能。一键实现。非常的舒服。

1. 启动脚本 shell脚本

这是 shell脚本 

脚本名称: startup.sh  
本脚本的功能是在jenkins 构建完项目后,通过jar包生成docker 镜像,然后重新服务的功能。demo-test是 服务名字

脚本目录地址: /root/saas/akk-account/startup.sh
 

##  startup.sh  
## 本脚本的功能是在jenkins 构建完项目后,通过jar包生成docker 镜像,然后重新服务的功能。
## demo-test是 服务名字

#!/bin/sh
echo "==================== start restart docker containers ====================="

APP_DIR=/root/saas/demo-test

APP_NAME=demo-test

APP_PORT=7080

VERSION=1.0.0-SNAPSHOT
 
cd $APP_DIR

rm -f demo-test-${VERSION}.jar
cp /data/jenkins/workspace/demo-test/target/demo-test-${VERSION}.jar ./
sleep 3s 

## 检查进程是否存在
PID=$(docker ps -a --filter name=$APP_NAME| grep -v "grep"|awk '{print $2}'|awk 'NR==2')
if [ "$PID" == "" ]; then
        echo "应用:$APP_NAME  容器不存在。"
else
        echo "应用:$APP_NAME  存在容器:$PID"
        
        docker stop  $PID
        docker rm $PID
        echo "容器:$PID 停止成功。"
        
        docker rmi $PID
        echo "镜像:$PID 停止成功。"
fi

echo "应用:$APP_NAME  正在启动..."

docker build -t $APP_NAME .
docker run -m 4g --name $APP_NAME -d -p $APP_PORT:$APP_PORT -v /etc/localtime:/etc/localtime -v /data/logs/saas/demo-test/logs:/root/saas/demo-test/logs --network host $APP_NAME 
echo "应用启动命令已执行,稍候请检查服务是否可用。"

echo "==================== end restart docker containers =========================="
~

2. Dockerfile文件

上面的shell脚本在执行 docker build命令的时候,需要一个 Dockerfile文件,Dockerfile文件内容:

FROM openjdk:8

MAINTAINER "维护者 <email>"
RUN echo "Asia/Shanghai" > /etc/timezone

LABEL description="demo-test"
ADD demo-test-1.0.0-SNAPSHOT.jar demo-test.jar
EXPOSE 7080
ENTRYPOINT ["java","-XX:+UseContainerSupport","-XX:MaxRAMPercentage=75.0","-server","-XX:+UseG1GC","-XX:MaxGCPauseMillis=200","-Xmx1024m","-Xms1024m","-Xmn384m","-jar","-Dspring.profiles.active=dev","demo-test.jar"]

3. 文件目录关系

Dockerfile 和startup.sh文件是在同一个目录下面

比如都是在这个目录下面:  /root/saas/akk-account/

然后下面的jenkins进行配置的时候,需要用到这个 startup.sh的脚本文件, 而startup.sh脚本文件运行的时候依赖Dockerfile文件,就是这样的关系。

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能,jenkins,jar,docker

4. jenkins 任务的创建

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能,jenkins,jar,docker

jenkins 流水线的配置:

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能,jenkins,jar,docker

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能,jenkins,jar,docker

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能,jenkins,jar,docker

 【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能,jenkins,jar,docker

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能,jenkins,jar,docker

clean package -Dmaven.test.skip=true 

        进行java 编译打包,生成jar文件

sh /root/saas/akk-account/startup.sh
        docker镜像生成, 启动docker服务文章来源地址https://www.toymoban.com/news/detail-677933.html

到了这里,关于【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Jenkins】Jenkins构建前端流水线

    1、服务器中已安装好nginx,如没有安装,可参考此博客:【Shell脚本】Linux安装Nginx以及开机自启 2、如果已有试图,则直接新建任务;如没有视图,则新建一个视图即可。 一个项目一个视图就可以 描述:XXX前端-前端XXX服务测试环境-项目构建 创建人:创建者姓名 时间:创建

    2024年02月16日
    浏览(77)
  • Jenkins的流水线启动jar后未执行问题处理

    现象 在流水线里配置了启动脚本例如,nohup java -jar xxx.jar nohup.out 21 但是在服务器发现服务并未启动,且nohup日志里没输出日志,这样的原因是jenkins在执行完脚本后,就退出了这个进程。 在启动脚本执行jar命令的上一步加入以下变量

    2024年02月12日
    浏览(62)
  • Jenkins 流水线多阶段构建

    Jenkins流水线配置遇到 无法识别的。需要使用 自定义环境 项。 比如官网的在流水线中使用Docker Started by remote host 172.17.0.1 Obtained Jenkinsfile from git http://10.99.20.51:8082/root/java-devops-demo.git org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: 28: Invalid agent type “

    2024年04月22日
    浏览(25)
  • 【Jenkins】Jenkins构建后端流水线

    xxxx后端-后端cim服务测试环境-项目构建 创建人:创建者姓名 时间:创建时间 保持构建天数:2 保持最大构建个数:3 ①clean:清楚之前;package:打包 -Dmaven.test.skip=true:跳过测试;-U:强制让Maven检查所有SNAPSHOT依赖更新 这里的pom.xml文件注意: Branches to build:分支某个环境的

    2024年02月12日
    浏览(42)
  • Jenkins部署Docker与Jenkins流水线

    接上篇 1. 外挂文件的方式在docker容器中启动 2. 将构建运行放入docker容器中(不构建镜像) 修改Jenkins构建前设置 修改部署后操作 重新构建,已经成功构建在容器中 3. 将构建运行放入docker镜像中(采用dockerfile) 1.编写dockerfile,放入项目中, 注意不能和依赖的包同级 写好可

    2024年01月22日
    浏览(42)
  • (十六)devops持续集成开发——jenkins流水线构建之邮件通知

    本节内容主要介绍jenkins在流水线任务构建完成后的通知操作,使用jenkins的邮件通知插件完成构建任务结束的通知。一般项目发布都会通知相关的责任人,这样项目发布在出现问题时能够及时的处理。 ①在插件中心安装Email Extension邮件通知插件 ②申请一个发送邮件的邮箱服务

    2024年02月21日
    浏览(51)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用

    本节内容我们主要介绍在Jenkins流水线中,其构建过程中的一些构建策略的配置,例如通过远程http构建、定时任务构建、轮询SCM构建、参数化构建、Git hook钩子触发构建等,可根据不同的需求完成不同构建策略的配置。 - 构建策略说明: - 测试验证 - 构建说明 - 测试验证 - 配置

    2024年02月21日
    浏览(79)
  • 【jenkins】idea+jenkins+docker+dockerfile+compose流水线部署java应用

    目录 整体架构 环境准备 安装docker以及docker-compose jenkins安裝 maven安装 portainer面板安装 sonarqube安装  在项目中增加dockerfile和compose.yml脚本  Dockerfile脚本内容 compose.yml脚本内容 jenkins安装必要插件 jenkins增加流水线任务 增加pipeline任务job  增加pipeline脚本 WXWork Notification Plugin 

    2024年02月16日
    浏览(49)
  • Jenkins构建流水线SSH连接Git错误:Host key verification failed 报错问题

    报错信息: 无法连接仓库: Command \\\"git ls-remote -h -- git@ip:xxx/xxx.git HEAD\\\" returned status code 128: stdout: stderr: No ED25519 host key is known for ip and you have requested strict checking. Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rightsand the repository exists

    2024年03月18日
    浏览(115)
  • jenkins流水线

    1、 二、 三、 四、 五、 六、  

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包