jenkins使用Jenkinsfile部署springboot+docker项目

文章目录


前言

前面使用Jenkinsfile部署了前端vue项目,接着学习Jenkinsfile部署springboot项目。


一、前期准备

已经安装好centos,并且安装了jenkins和docker。本地新建springboot并上传到gitee上。

二、编辑构建文件

打开本地工程,新增docker文件夹,新增Dockerfile文件

内容如下:

bash 复制代码
# jre基础环境
FROM openjdk:8-jre-alpine

# 维护者信息
MAINTAINER zhy

# 设置环境变量-运行时也可传参进来哈
ENV JAVA_OPTS ""

# 添加jar包到容器中 -- tips: xx.jar 和 Dockerfile 在同一级
ADD *.jar /home/app.jar

# 对外暴漏的端口号
# [注:EXPOSE指令只是声明容器运行时提供的服务端口,给读者看有哪些端口,在运行时只会开启程序自身的端口!!]
EXPOSE 8080

# 以exec格式的CMD指令 -- 可实现优雅停止容器服务
# "sh", "-c" : 可通过exec模式执行shell  =》 获得环境变量
CMD ["sh", "-c", "echo \"****** 运行命令:java -jar ${JAVA_OPTS} /home/app.jar\"   &   java -jar ${JAVA_OPTS} /home/app.jar"]

在根目录新增Jenkinsfile文件

内容如下:

bash 复制代码
pipeline {
    agent any
    environment {
        APP_NAME = 'executor-test'
        APP_IMAGE = 'executor-test'
        APP_PORT = 9999
    }

    stages {

        stage('环境准备') {
            steps {
                sh """
                # maven打包
                mvn clean install -DskipTests
                # 拷贝jar到docker目录下
                cp target/executor-test-0.0.1-SNAPSHOT.jar docker
                """
            }
        }

        stage('构建Docker镜像') {
            steps {
                sh """
                    # 删除旧容器
                    docker ps -a | grep ${APP_NAME} | awk '{print \$1}' | xargs -i docker stop {} | xargs -i docker rm {}
                    # 删除旧镜像
                    docker images | grep ${APP_NAME} | awk '{print \$3}' | xargs -i docker rmi {}
                    # 进入Docker目录
                    cd docker
                    # 构建镜像
                    docker build -f Dockerfile -t ${APP_IMAGE} . --no-cache
                """
            }
        }

        stage('运行容器') {
            steps {
                sh """
                    docker run -d -p ${APP_PORT}:8080 --restart=always --name ${APP_NAME} ${APP_IMAGE}
                """
            }
        }

    }
}

提交代码到gitee上,注意文件中的地址要与你自己项目的一致。

二、Jenkins构建

登录jenkins新建任务

添加描述信息

流水线选择SCM

选择git

粘贴gitee中项目地址,选择凭证,如果没有凭证,点击添加即可。

点击保存,立即构建

可查看控制台日志输出

这里遇到了一个错误,打包的镜像名称不能用大写

修改Jenkinsfile文件

提交代码,接着构建

构建成功,打开浏览器访问接口测试


总结

以上就是今天要讲的内容,本文介绍了jenkins使用Jenkinsfile部署springboot项目。

相关推荐
JosieBook36 分钟前
【web应用】前后端分离项目基本框架组成:Vue + Spring Boot 最佳实践指南
前端·vue.js·spring boot
钱彬 (Qian Bin)42 分钟前
解决docker load加载tar镜像报json no such file or directory的错误
运维·docker·容器·错误·tar·docker load
Code blocks1 小时前
SpringBoot中策略模式使用
java·spring boot·后端·mybatis·策略模式
追风筝的小青年2 小时前
ubuntu24中部署k8s 1.30.x-底层用docker
docker·容器·kubernetes
贝锐2 小时前
Docker本地部署青龙面板,如何用内网穿透工具实现远程访问?
网络·docker
麦兜*2 小时前
Spring Boot 与 Ollama 集成部署私有LLM服务 的完整避坑指南,涵盖 环境配置、模型管理、性能优化 和 安全加固
java·spring boot·后端·安全·spring cloud·性能优化
烟沙九洲2 小时前
服务之间远程Feign调用,出现参数丢失
java·spring boot
麦兜*3 小时前
国产大模型平替方案:Spring Boot通义千问API集成指南
java·spring boot·后端·python·spring cloud·系统架构·springboot
顽疲3 小时前
从零用java实现小红书springboot_vue_uniapp(15)评论和im添加图片
java·vue.js·spring boot·uni-app
zk_xyb3 小时前
Postman 四种请求体格式全解析:区别、用法及 Spring Boot 接收指南
spring boot·lua·postman