云服务器 docker+jenkins+gitee+spring-boot项目实现自动化部署

1.理论讲解

用处

一般情况下,使用jenkins的目的是为了能够自动化部署项目到服务器上,将开发环境和部署环境隔离开来,对于个人电脑而言,做一个项目运行之后会因为硬件跟不上,造成卡顿情况下。jenkins还有利于团队开发。
具体原因:主要是电脑内存实在是不够了
额外:
现在云部署服务已经很全面,可以利用各saas服务进行相应购买后可简单部署,就不需要那么麻烦配置自身了。主要是在搭建自身的同时提高一下从零开始的成长过程。

工作原理

jenkins一般部署的是一台机器上,部署环境是另一台机器上,先通过jenkins配置与gitee相联,并与之监控代码的上传情况,下载到本地之后进行由maven进行打包。之后将打包传送到远程服务器部署,部署有多种,可以用jar包形式利用java命令运行。也可以部署到docker上以容器运行。

注意

本次仅以记录为主,针对大量查询网址知识和相关帖子之后,遇到好多坑,本人还有很多不足,有些问题也是不明不白就解决了,实属有待研究。但结果是好的。可以运行并达到自己的要求了。

2.安装docker

目前买的阿里云服务器的版本内核都已到达docker安装的需求,所以不做提示

sudo yum -y install docker-ce

安装阿里云镜像

sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装教程
网址链接

3.docker 安装jenkins

启动docker之后

docker serch jenkins

在这里插入图片描述

我这次用的是jenkinsci/blueocean

docerk pull jenkinsci/blueocean

4.配置Jenkins之前工作

原因(简称初始化工作)

在jenkins部署的服务器上,是用来编译项目和打包的,所以这次需要用到。所以要将这些先安装到部署jenkins的服务器上。
以下安装需要记住安装目录
1.jdk 8
jdk官网
2.maven
我下的是这个版本apache-maven-3.8.3-bin.tar.gz
3.git
直接yum install
(提示:要记住安装目录,可以用以下命令来安装指定目录)

yum -c /etc/yum.conf --installroot=/usr/local --releasever=/  install {这里填你想安装的软件,例如git,不用加大括号}

安装完后统一配置环境变量,vim /etc/profile(自行搜索)
安装之后记住安装目录才能jenkins配置好,这一步非常重要,别问我为什么知道,试了好多次。
例如我把jdk安装到
/usr/src/components/jdk1.8.0_301

dokcer启动jenkins *重点

一般docker是以容器来部署的,所以说一些路径和配置文件都在容器下,这时我们要进行文件的映射,将本地的文件映射(专业名词,我可能说得不对)到docker里。

# 查看镜像
docker images

在这里插入图片描述

docker run -d -p 8001:8080 -p 50000:50000 \
-v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/mv:/usr/bin/mv \
-v /usr/src/components/jdk1.8.0_301/bin/java:/usr/src/components/jdk1.8.0_301/bin/java \
-v /usr/src/components/jdk1.8.0_301:/usr/src/components/jdk1.8.0_301 \
-v /usr/src/components/apache-maven-3.8.3:/usr/src/components/apache-maven-3.8.3 \
-v /export/service/repository:/export/service/repository \
-v /usr/src/components/git:/usr/src/componeents/git \
-v /usr/src/components/git/bin/git:/usr/src/components/git/bin/git \
-v jenkins:/export/service/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkinsci/blueocean

\

这里的\是命令行分割

逐一分析
-v /usr/bin/docker:/usr/bin/docker \ (部署docker时要用到的, :前面的是本机,:后面的是容器里的文件路径)
-v /usr/src/components/jdk1.8.0_301/bin/java:/usr/src/components/jdk1.8.0_301/bin/java
-v /usr/src/components/jdk1.8.0_301:/usr/src/components/jdk1.8.0_301 {这里是jdk路径,也就是JAVE_HOME环境变量配置的路径}
-v /usr/src/components/apache-maven-3.8.3:/usr/src/components/apache-maven-3.8.3 {
这里是maven的路径,同上}

-v /usr/src/components/git:/usr/src/componeents/git
-v /usr/src/components/git/bin/git:/usr/src/components/git/bin/git \ { git这里需要配置两个,原因后面提及}
其余命令,根据这个帖子借鉴:

https://blog.csdn.net/x286129277/article/details/109523157

运行命令之后。就可以通过公网ip地址进入8001端口

jenkins初始化

在这里插入图片描述
安装推荐的插件

在这里插入图片描述
之后实例配置的话,直接默认也行。

5.配置公共模块

这时,经过重重磨难。终于来到了jenkins界面
在这里插入图片描述
点击设置
先点击插件管理
在这里插入图片描述
在这里插入图片描述

远程链接插件
在这里插入图片描述
安装重启jenkins(点击安装重启选择就行。不用重启docker)
在这里插入图片描述
进入全局,重点来了之前设置的路径在此用上了
在这里插入图片描述
在这里插入图片描述
第一步的前置配置完成。

6.配置远程服务器

远程服务器指的是你的项目部署的服务器,主要是我这里只有一条服务器,所以都配置统一服务器上了
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

7.与gitee进行相连

在这里插入图片描述
先在装好gitee之后
在这里插入图片描述
在这里插入图片描述

这里利用token令牌免登录
在这里插入图片描述
在gitee的网址里面(下图是gitee的网址)
在这里插入图片描述
生成令牌
复制过来
在这里插入图片描述

8配置公钥

配置公钥是为了后续添加任务能够登录到git项目并拉取项目
在这里插入图片描述

先进入容器
docker exec -it <容器name或者id> /bin/bash

-it 是交互客户端
执行

ssh-keygen -t rsa
查看公钥
cat /var/jenkins_home/.ssh/id_rsa.pub

包括ssh-rsa 一同复制到上面gitee的公钥中生成就确认即可

9.jenkins创建任务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里填写gitee仓库之后,可能会出218等错误,要么你登录gitee的账号和密码错误,要么是git的路径有问题。或者你的公钥没配置
构建触发器指的是什么时候就拉取代码
在这里插入图片描述

要填写webhook,进入gitee项目的管理把上面url和密码填入下面
在这里插入图片描述

10.准备好spring-boot项目,并部署

下拉,前提是你的项目能够运行并且能够在maven打包。构建环境

先构建好maven
在这里插入图片描述

在这里插入图片描述

clean install -Dmaven.test.skip=true

编译好的jar在docker容器里面
#进入容器

docker exec -it 89f7dc9c71a7 /bin/bash

#切换到workspace目录

 cd /var/jenkins_home/workspace/

在这里插入图片描述
在这里插入图片描述

11.jenkins构建任务

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

12.补充:运行脚本

晚上有很多关于centos的命令,但是有些并不适用,唯独找到下面引用链接里。才能够完成
在这里插入图片描述
刚才这里
source /etc/profile
cd 《远程部署服务器路径,上面Remote prefix填的》
ps -ef|grep《jar包名称 不加书名号》|grep -v grep|awk ‘{print $2}’|xargs kill -s 9
BUILD_ID=dontKillMe
nohup java -jar 《jar包名称 不加书名号》 > unionproject_log.file 2>&1 &
具体引用如下

这里是引用
https://blog.csdn.net/jiayou516/article/details/116997016

13.总结

自身通过很多帖子进行解决。再根据自己走过的过程一路记录过来。到最后能够实现。困难总有,唯独解决困难和不断向前走。熬夜也不成问题。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一个开源的应用容器引擎,可以帮助开发者快速轻松地构建、部署和运行应用程序。它提供了一个隔离的环境,可以把应用程序和其依赖项打包成一个容器,使得应用程序在不同的环境中能够一致地运行。 Jenkins是一个开源的持续集成工具,它可以自动构建、测试和部署应用程序。通过与代码仓库的集成,Jenkins可以在代码发生变更时自动触发构建过程,帮助团队快速地检测和解决问题,提高开发效率。 GitLab是一个基于Git的开源代码托管平台,它提供了代码仓库管理、代码评审、问题跟踪、持续集成等功能。与其他代码托管平台相比,GitLab更加强调安全性和可扩展性,支持企业内部自建和云端部署,适用于团队协作和敏捷开发。 Maven是一个用于构建、管理和发布Java项目的工具。它通过一个配置文件描述项目的结构和依赖关系,可以自动下载并管理项目的依赖项,统一构建过程和产出,提高项目的可维护性和可复用性。 Spring Boot是一个基于Spring框架的开源Java开发框架。它的目标是简化Spring应用程序的开发和部署,并提供一套快速构建可独立运行的Java应用程序的解决方案。Spring Boot提供了自动配置、快速开发等特性,可以帮助开发者更加高效地开发和部署Spring应用程序。 综上所述,DockerJenkins、GitLab、Maven和Spring Boot是一些常用的开发和部署工具,它们相互配合使用可以帮助开发者更好地进行应用程序的构建、测试和部署工作,提高开发效率和应用程序的质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值