Jenkins+gitee流水线部署springboot项目

目录

前言

一、软件版本/仓库

二、准备工作

2.1 安装jdk 11

2.2 安装maven3.9.7

2.3 安装docker

2.4 docker部署jenkins容器

三、jenkins入门使用

3.1 新手入门

3.2 jenkins设置环境变量JDK、MAVEN、全局变量

3.2.1 jenkins页面

3.2.2 jenkins容器内部终端

3.2.3 全局变量

3.3 安装国内源

3.4 jenkins设置中文

3.5 安装其他插件

四、创建jenkins任务

4.1 创建一个maven任务

4.1.2 仓库地址

4.1.3 构建build

4.1.4 dockerfile

4.1.5 shell内容

4.2 创建一个流水线pipeline任务

4.2.1查看用户凭证

4.2.2 流水线代码

4.3 私密仓库mvn任务

4.3.1 创建maven任务

4.3.2 查看gitee账户凭证

五、报错总结

5.1 bash: mvn: command not found

5.2 构建失败nohup: failed to run command 'java': No such file or directory

5.3 ADD failed: file not found in build context or excluded by .dockerignore: stat jdk-11.0.10_linux-x64_bin.tar.gz: file does not exist

5.4 java找不到主属性问题  大坑!!!更改pom.xml文件

5.5 构建时mvn:not found

5.6 The container name “/jenkins-app” is already in use by container

5.7 This Pipeline has run successfully,but does not define any stages,Please use the stage step to define some stages in this Pipeline.

5.8 Jenkins安装插件出现Signature verification failed in update site 'default' (show details),插件无法下载

5.9 Warning:This plugin is bulit for jenkins 2.387.3 or newer,Jeknins will refuse to load this plugin if installed.

六、参考


前言

比较长比较复杂,需要一点点运维基础,但基本把jenkins该踩的坑都踩老,创建一个springboot项目并上传gitee:创建第一个Springboot项目HelloWorld-CSDN博客

不想创建也可以直接克隆我的公开项目,然后再上传至你自己的gitee

 springboot项目地址:

https://gitee.com/luo_guibin/demo_springboot.git

一、软件版本/仓库

jdk:11.0.23

jdk所有版本下载地址:Java Archive | Oracle

maven:3.9.7

maven下载地址:Maven – Download Apache Maven

docker:18.09.9/docker版本无要求(jenkins使用docker部署)

jenkins:2.401(docker pull jenkins/jenkins:2.401命令拉取不了,以下链接可以下载镜像tar包,docker pull 无法下载jenkins制定版本,挂梯子也不行,不用尝试,直接用我的就行,有其他方法获取到2.4以上的版本都行)

!此处不要使用jenkins/jenkins或者jenkins镜像,前者表面上是最新镜像,我镜像源设置的是阿里云地址,其实阿里镜像好久没更新jenkins版本,实际版本为2.328(该版本不支持下载chinese插件,谨慎选择),后者则是远古版本,不要选择,两个都挂着latest最新版,实际老到不行......

#jenkins:2.401
链接:https://pan.baidu.com/s/1xDsJaixmy2Eg0uyAe94U1A?pwd=1234 
提取码:1234
#将tar文件加载为docker镜像
docker load -i *****.tar

二、准备工作

2.1 安装jdk 11

jdk安装包放在/opt下

[root@localhost opt]# pwd
/opt
[root@localhost opt]# ls
apache-maven-3.9.7-bin.tar.gz  jdk-11.0.23_linux-x64_bin.tar.gz
[root@localhost opt]# tar -zxvf jdk-11.0.23_linux-x64_bin.tar.gz 
[root@localhost opt]# mkdir /usr/local/java
[root@localhost opt]# mv jdk-11.0.23 /usr/local/java/
[root@localhost opt]# vim /etc/profile

#########添加环境变量
export JAVA_HOME=/usr/local/java/jdk-11.0.23
export PATH=$PATH:${JAVA_HOME}/bin
#########

[root@localhost opt]# source /etc/profile
[root@localhost opt]# java -version
java version "11.0.23" 2024-04-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.23+7-LTS-222)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.23+7-LTS-222, mixed mode)

2.2 安装maven3.9.7

maven安装包放在/opt下 

[root@localhost opt]# ls
apache-maven-3.9.7-bin.tar.gz  jdk-11.0.23_linux-x64_bin.tar.gz
[root@localhost apache-maven-3.9.7]# tar -zxvf apache-maven-3.9.7-bin.tar.gz
[root@localhost opt]# mv apache-maven-3.9.7 /usr/local/
[root@localhost opt]# cd /usr/local/apache-maven-3.9.7/
[root@localhost apache-maven-3.9.7]# ls
bin  boot  conf  lib  LICENSE  NOTICE  README.txt

#######创建名为ck的仓库文件夹
[root@localhost apache-maven-3.9.7]# mkdir /usr/local/apache-maven-3.9.7/ck
[root@localhost apache-maven-3.9.7]# vim /usr/local/apache-maven-3.9.7/conf/settings.xml 

#######更改maven配置文件,1 添加仓库,2 新增阿里云镜像源
<localRepository>/usr/local/apache-maven-3.9.1/ck</localRepository>

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
</mirror>
#######

[root@localhost apache-maven-3.9.7]# vim /etc/profile

#######添加环境变量
export MAVEN_HOME=/usr/local/apache-maven-3.9.7
export PATH=$PATH:$MAVEN_HOME/bin
#######

[root@localhost apache-maven-3.9.7]# source /etc/profile
[root@localhost apache-maven-3.9.7]# mvn -v
Apache Maven 3.9.7 (8b094c9513efc1b9ce2d952b3b9c8eaedaf8cbf0)
Maven home: /usr/local/apache-maven-3.9.7
Java version: 11.0.23, vendor: Oracle Corporation, runtime: /usr/local/java/jdk-11.0.23
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

2.3 安装docker

请安装链接安装docker

docker--安装docker-ce-CSDN博客

2.4 docker部署jenkins容器

注意推荐使用dokcer部署jenkins,不建议用war/jar部署,很不方便,使用过程需要多次重启,并且环境变量复杂。

注意我使用的阿里云的docker镜像,docker pull jenkins(此版本显示是2.60版本,但实际是几年前的远古版本)、docker pull jenkins/jenkins(2.328版本),这两个都不要使用,使用网盘里的2.401版本

JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true 此命令跟插件下载相关

docker run -u root -d \
-p 100:8080 \
-v /var/jenkins_home/workspace/:/var/jenkins_home/workspace/ \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-v /usr/local/java/jdk-11.0.23:/usr/local/java \
-v /usr/local/apache-maven-3.9.7:/usr/local/maven \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \
-e JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true \
--restart=always \
--name myjenkins jenkins/jenkins:2.401
[root@jenkins-60 ~]# docker ps
CONTAINER ID   IMAGE             COMMAND                   CREATED         STATUS         PORTS                                                NAMES
8639174e3d49   jenkins/jenkins   "/sbin/tini -- /usr/…"   5 minutes ago   Up 5 minutes   50000/tcp, 0.0.0.0:100->8080/tcp, :::100->8080/tcp   myjenkins

三、jenkins入门使用

3.1 新手入门

访问11.0.1.60:100,cat /var/jenkins_home/secrets/initialAdminPassword 查看秘钥

[root@jenkins-60 ~]# docker exec myjenkins cat /var/jenkins_home/secrets/initialAdminPassword
a09c4ca559ff4de496495dc4f382df52

此处可以直接右上角跳过,因为在这里安装基本全部失败。

可创建新用户,也可以直接跳过,使用admin用户

先把admin的密码改了,不让每次登录都要复制,新密码:lgblgblgb(自定义),选择“save”后重新登陆

首页可以查看jenkins版本

3.2 jenkins设置环境变量JDK、MAVEN、全局变量

3.2.1 jenkins页面

#宿主机
MAVEN_HOME=/usr/local/apache-maven-3.9.1
JAVA_HOME=/usr/local/java/jdk-11.0.10

#jenkins容器
MAVEN_HOME=/usr/local/maven
JAVA_HOME=/usr/local/java

"系统管理"--“全局工具配置”--“jdk”--"maven",注意是容器内环境地址,不是宿主机环境地址

Jenkins流水线部署Spring Boot项目的方法和步骤可以参考以下内容: - **任务构建与脚本编写**:涉及Jenkins流水线任务构建、Groovy脚本和Jenkinsfile实现,还能实现参数化构建,拉取Git代码、构建代码、制作自定义镜像并发布 [^1]。 - **具体步骤示例**:使用Jenkinsfile部署Spring Boot项目,具体步骤如下 [^4]: ```groovy pipeline { agent any tools{ maven 'maven-3.8.4' } stages { stage('拉取代码') { steps { git credentialsId: 'fc58707b-7072-47c1-889c-7d612821726c', url: 'https://gitee.com/latemaple/test.git' echo '拉取成功' } } stage('执行构建') { steps { sh "mvn --version" sh "mvn clean package" echo '构建完成' } } stage('把jar包构建为docker镜像并运行') { steps { sh '''#!/bin/bash # 源jar名称,mvn打包之后,target目录下的jar包名称 JAR_NAME=test-0.0.1-SNAPSHOT # jenkins下的目录 JENKINS_HOME=/var/jenkins_home/workspace/test2 cd $JENKINS_HOME/target cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target # 修改文件权限 chmod 755 $JAR_NAME.jar echo "停止容器" docker stop test echo "删除容器" docker rm test echo "删除镜像" docker rmi test echo "打包镜像" docker build -t test . echo "运行镜像" docker run -d -p 8082:8082 --name test test ''' echo '运行成功' } } } } ``` - **部署情况考虑**:若Jenkins服务器和目标服务器是同一台服务器,流水线只需拉取代码和部署项目两个步骤;若要将应用镜像部署到其他服务器,可以将jar包或镜像文件上传到目标服务器,也可以先将镜像推送到镜像仓库,再从目标服务器拉取镜像进行部署 [^2]。 - **多分支流水线应用**:对于Spring Boot聚合项目,可配置多分支流水线项目,由于实际开发中往往只需频繁构建几个子项目,不必每次都构建整个项目,可以把Jenkinsfile里触发构建的代码注释,需要构建时找到对应项目和分支点击构建 [^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值