Docker+Jenkins+gitee实现springboot项目自动化部署

发布于:2025-02-10 ⋅ 阅读:(22) ⋅ 点赞:(0)

         前言:最近在学习自动化打包,所以记录一下以免下次踩坑,虽然技术是持续更新的,但是有些东西是万变不离其中,以后会持续更新。

        我这里采用的阿里云的云服务器,系统是CentOS 7.9 64位,安装Docker、Jenkins 、Git、JDK、Maven等工具。(注:有的安装Jenkins会自带 Git、JDK、Maven等工具,我安装的时候Jenkins没有这些工具需要自己安装)

一、安装 Docker

1、更新yum到最新版本

yum update

2、如果存在旧版本,可先卸载旧版本,再安装新版本

卸载旧版本(没有可跳过,可使用docker -v 查询是否有版本存在):

yum remove docker  docker-common docker-selinux docker-engine

3、安装Docker

//安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 

//配置docker yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
或配置阿里 yum 源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//安卓docker
yum install docker-ce  #安装最新版本
yum install <自己的版本>  # 例如:yum install docker-ce-17.12.0.ce

//启动docker
systemctl start docker
//配置开机自启动
systemctl enable docker


验证是否安装成功

//查看安装版本 返回版本证明安装成功
docker version

二、安装Jenkins(docker安装jenkins)

  安装之前需要拉取Jenkins镜像

//查看镜像
docker search jenkins

//拉取镜像
docker pull jenkins/jenkins:lts

//启动容器
docker run -u root -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home --name jenkins jenkins/jenkins:lts
或者
 docker run -u root --rm -d -p 8080:8080 -p 50000:50000 --name jenkins -v /var/jenkins_home:/var/jenkins_home -v /usr/lib/java/jdk-22.0.2:/usr/lib/java/jdk-22.0.2 -v /usr/local/develop/apache-maven-3.9.9:/usr/local/develop/apache-maven-3.9.9 jenkins/jenkins:lts


docker run: 运行 Docker 容器的命令。

-u root: 以 root 用户身份运行容器。这通常用于确保容器内的进程具有足够的权限执行需要的操作。

-rm: 关闭时自动删除Docker容器

-d: 在后台运行容器,即“detached”模式。

-p 8080:8080: 将容器内部的 8080 端口映射到宿主机的 8080 端口。Jenkins 服务通常在 8080 端口上运行。

-p 50000:50000: 将容器内部的 50000 端口映射到宿主机的 50000 端口。这是 Jenkins 使用的用于构建和执行任务的端口。

-v jenkins-data:/var/jenkins_home: 将宿主机上的目录(enkins-data)挂载到容器内的 /var/jenkins_home 目录。这样可以确保 Jenkins 数据和配置持久化,即使容器被删除,数据仍然保存在宿主机上。

-v /usr/lib/java/jdk-22.0.2:/usr/lib/java/jdk-22.0.2 云服务器上jdk安装目录

-v /usr/local/develop/apache-maven-3.9.9  云服务器上Maven 安装目录

--name jenkins: 为容器指定一个名称,即 "jenkins"。

TIP : 容器名称可以根据自己喜好命名

jenkins/jenkins:lts: 指定要运行的 Docker 镜像的名称和版本。在这里,使用的是 Jenkins 的 LTS 版本

 镜像下载成功后,通过 docker images 命令来检查一下镜像是否下载成功:

 

注意:安装出现以下错误,需要修改docker配置文件

创建docker配置文件

创建/etc/docker目录
sudo mkdir -p /etc/docker

创建docker镜像配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF

//重载
systemctl daemon-reload
//重启
systemctl restart docker

或者
service docker restart

然后再执行安装Jenkins

 执行 docker ps 命令来查看正在运行的容器,确认一下容器是否运行成功:

到此为止Jenkins安装成功

三、安装JDK(如果安装Jenkins 自带jdk可以不安装,也可以卸载自己安装,使用 java -version 查看是否安装)

3.1、三种方法安装JDK(yum、手动、rpm)

        3.1.1、使用yum命令安装JDK

//查询服务器安装的JDK
java -version

//卸载当前服务器上的安装JDK(如果想卸载可执行这一步)
yum -y remove java-1.8.0-openjdk*  //java-1.8.0-openjdk* 为服务器当前安装的JDK名称

//检索可用包
yum search java|grep jdk

//安装自己想要的版本(此处依java-11-openjdk 为例)
yum install java-11-openjdk

//安装完之后,默认的安装目录是在: /usr/lib/jvm/java-11-openjdk

         3.1.2、手动安装 

//在/usr/目录下创建java目录
mkdir/usr/java
cd /usr/java

//下载jdk,然后解压
curl -O https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz (sha256)
tar -zxvf jdk-22_linux-x64_bin.tar.gz

        3.1.3、使用rpm安装

//下载rpm安装文件
curl -O https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.rpm 

//使用rpm命令安装
rpm -ivh jdk-22_linux-x64_bin.rpm 

//安装jdk,默认安装在/usr/java/default目录下

 3.2、设置环境变量

//编辑全局配置文件
vi /etc/profile

在profile文件中添加如下内容

#set java environment
export JAVA_HOME=/usr/lib/java/jdk-22.0.2
export PATH=$PATH:${JAVA_HOME}/bin

//运行下面命令让修改生效
source /etc/profile

 3.3、执行java -version 查看是都安装成功,出现以下内容说明安装和配置环境成功

//查看jdk版本信息
java -version

//出现权限问题
-bash: /usr/lib/java/jdk-22.0.2/bin/java: Permission denied

//执行授权命令
sudo chmod +x /usr/lib/java/jdk-22.0.2/bin/java

//再次查看版本信息
java -version

//出现版本信息 jdk 安装成功
java version "22.0.2" 2024-07-16
Java(TM) SE Runtime Environment (build 22.0.2+9-70)
Java HotSpot(TM) 64-Bit Server VM (build 22.0.2+9-70, mixed mode, sharing)

 四、安装Maven(如果安装Jenkins 自带Maven可以不安装,也可以卸载自己安装,使用 mvn -v 查看是否安装)

4.1、二种方法安装JDK(yum、手动)

        4.1.1 yum 安装

//安装wget 插件
yum install wget

// 创建maven目录(可以自己定义目录地址)
mkdir /usr/local/develop/apache-maven-3.9.9 -p

//进入maven目录
cd /usr/local/develop/apache-maven-3.9.9/


//使用wget 下载安装包
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz


//解压缩文件
tar xzvf apache-maven-3.9.9-bin.tar.gz


//安装目录为 /usr/local/develop/apache-maven-3.9.9

        4.1.2、手动安装,安装下载到本地解压之后 直接通过Xftp 上传到指定的目录当中即可

4.2 配置环境变量

//编辑全局配置文件
vi /etc/profile

在profile文件中添加如下内容

#set mavenenvironment
export M2_HOME=/usr/local/develop/apache-maven-3.9.9
export PATH=$PATH:$M2_HOME/bin

//运行下面命令让修改生效
source /etc/profile

 4.3、执行 mvn -v 查看是都安装成功,出现以下内容说明安装和配置环境成功

//查看maven 版本信息
mvn -v

//出现这个说明权限问题
-bash: /usr/local/develop/apache-maven-3.9.9/bin/mvn: Permission denied

//执行授权命令
sudo chmod +x /usr/local/develop/apache-maven-3.9.9/bin/mvn

//再次查看版本信息
mvn -v

//会出现maven 信息 ,也会出现安装的jdk版本信息和安装路径  maven安装成功
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: /usr/local/develop/apache-maven-3.9.9
Java version: 22.0.2, vendor: Oracle Corporation, runtime: /usr/lib/java/jdk-22.0.2
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.119.1.el7.x86_64", arch: "amd64", family: "unix"

 五、安装Git(如果安装Jenkins 自带Git可以不安装,也可以卸载自己安装,使用 mvn -v 查看是否安装)

//使用yum 安装git
yum install git

//查看安装信息 
git --version

//出现版本信息则安装成功
git version 1.8.3.1

//查看安装目录
which git

//默认安装目录为/usr/bin/git

六、配置Jenkins 

访问jenkins(需要等待几分钟,Jenkins安装成功需要初始化准备)

http://{您服务器的IP地址}:{您设置的端口号}  //例如:http://*.*.*.*:8080/

 

查看密码

cat /home/jenkins-data/secrets/initialAdminPassword


//如果找不到文件可以使用以下方法查看日志,在日志中找到初始密码

docker ps //查看容器,找到 NAMES为安装jenkins 容器的名称

docker logs <container_id>  container_id为你jenkins 运行的id

得到密码后输入到Jenkins页面解锁Jenkins.

2.2、安装推荐插件

·插件下载问题

因为网络原因,需要将插件源设置为国内的,这样才可以安装插件。进入Jenkins安装目录下的 jenkins_home/,编辑文件 hudson.model.UpdateCenter.xml

  • 将 url 内容修改为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json(清华大学官方镜像)

  • 重启容器

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
<!--    <url>https://updates.jenkins.io/update-center.json</url>-->
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

重启服务:docker restart jenkins

创建管理员账户

配置实例

 

 2.3 Jenkins配置

 2.3.1 安装 Maven Integration 插件

 

2.3.2、安装语言插件(中文化) 如2.3.1一样搜索 locale 然后勾选 安装(安装完成,重启jenkins)

2.3.3、 安装Gitee

2.3.4、 安装 Publish Over SSH(如果需要远程推送,需要安装 Publish Over SSH,这里服务部署和Jenkins在同一台服务器,故不用安装。)

2.3.5、 配置 Maven 

进入Tools,首先配置maven配置

在滑动底部配置maven安装

2.3.6、配置JDK 

2.3.7、配置Git

 注意:如果在安装jenkins  执行docker run的时候没有配置maven 或者jdk的安装路径,在这儿配置安装路径的时候可能会出现 mave 或jdk路径  is not a directory on the Jenkins controller (but perhaps it exists on some agents 

 2.3.8、 配置Gitee,需要添加令牌(获取令牌地址  https://gitee.com/profile/personal_access_tokens

 2.4 创建构建任务

 2.4.1、 输入任务名称,选择maven项目

2.4.2、配置项目信息

 填写Gitee项目地址后会报错,点击 Credentials 下面的添加->jenkins 添加用户名密码凭证,添加之后选择报错信息就消失了

 *添加描述可以更好地区分项目的凭证信息

2.4.3、 触发构建器,在Gitee中要构建的项目中添加WebHooks

 2.4.4、日志打印时间戳,build clean package


网站公告

今日签到

点亮在社区的每一天
去签到