0


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

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

    我这里采用的阿里云的云服务器,系统是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

<?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

标签: docker jenkins gitee

本文转载自: https://blog.csdn.net/qq_24398367/article/details/141535940
版权归原作者 PrivateDream 所有, 如有侵权,请联系我们删除。

“Docker+Jenkins+gitee实现springboot项目自动化部署”的评论:

还没有评论