当前位置: 首页 > article >正文

jenkins 自动化部署Springboot 项目

一、安装docker

1.更新yum命令

yum -y update

2.查看机器有残留的docker服务,有就卸载干净

查看docker 服务

rpm -qa |grep docker

卸载docker

sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

查看已经安装的docker

yum list installed | grep docker
[root@iZ2vchn8sk983jcslvp36fZ ~]# yum list installed | grep docker
containerd.io.x86_64                 1.3.7-3.1.el8                           @docker-ce-stable
docker-ce.x86_64                     3:19.03.13-3.el8                        @docker-ce-stable
docker-ce-cli.x86_64                 1:19.03.13-3.el8                        @docker-ce-stable

依次删除

yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64

安装依赖软件包

sudo yum install -y yum-utils

设置稳定仓库

清华大学源
$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

安装 Docker Engine-Community

查看可用版本

yum list docker-ce --showduplicates | sort -r

指定安装

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
例如安装21.6.2版本
sudo apt-get install docker-ce=21.6.2 docker-ce-cli=21.6.2 containerd.io

配置源,不配置的话拉取不了镜像

vim /etc/docker/daemon.json

文件内容,配了还是有点慢,可以淘宝买一个源

{
  "registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}

重启

systemctl daemon-reload
systemctl restart docker

设置开机自动启动

systemctl enable docker.service

二、docker 安装jenkins

1.拉取jenkins最新镜像

docker pull jenkins/jenkins

2.查看镜像

docker images

3.创建宿主机挂载目录

mkdir -p /data/jenkins/jenkins_home

4.运行容器

docker run -d -p 18080:8080 -p 50000:50000 \
  -v /data/jenkins/jenkins_home:/var/jenkins_home \
  -v /etc/localtime:/etc/localtime \
  -v /usr/bin/docker:/usr/bin/docker \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --restart=on-failure \
  -u 0 \
  --name jenkins \
  jenkins/jenkins

命令解释

docker run: 运行一个新的容器。
-d: 后台运行容器 (detached mode)。
-p 18080:8080: 将宿主机的 18080 端口映射到容器的 8080 端口,这是 Jenkins 的 Web 界面默认端口。
-p 50000:50000: 将宿主机的 50000 端口映射到容器的 50000 端口,这是 Jenkins 用于与代理通信的端口。
-v /data/jenkins/jenkins_home:/var/jenkins_home: 将宿主机的 /data/jenkins/jenkins_home 目录挂载到容器的 /var/jenkins_home 目录,这是 Jenkins 的主目录,用于存储 Jenkins 配置、构建作业和插件等数据。
-v /etc/localtime:/etc/localtime: 将宿主机的 /etc/localtime 文件挂载到容器的 /etc/localtime,确保容器内的时间与宿主机同步。
-v /usr/bin/docker:/usr/bin/docker: 将宿主机的 Docker 二进制文件挂载到容器的 /usr/bin/docker,使容器内能够使用 Docker 命令。
-v /var/run/docker.sock:/var/run/docker.sock: 将宿主机的 Docker 进程套接字挂载到容器的 /var/run/docker.sock,使容器内的 Docker 客户端能够与宿主机的 Docker 守护进程通信。这对于 Jenkins 在容器内执行 Docker 命令是必要的。
--restart=on-failure: 配置容器在出现错误退出时自动重启。仅在容器以非零退出状态终止时才重启。
-u 0: 以 root 用户(UID 0)身份运行容器。这通常是为了确保容器内的 Jenkins 有足够的权限执行需要的操作。
--name jenkins: 为容器指定一个名称 jenkins,方便管理和引用该容器。
jenkins/jenkins: 使用 Jenkins 官方的 Docker 镜像。这是从 Docker Hub 拉取的 jenkins/jenkins 镜像的默认最新版本。

查看容器启动成功没有

docker ps -a

端口关闭防火墙,浏览器输入http://IP地址:端口

docker ps -a 查看容器id

进入容器

docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id

查看jenkins密码

cat /var/jenkins_home/secrets/initialAdminPassword

重启docker容器

docker restart 63595cab5fde #63595cab5fde 容器id

三、jenkins安装插件

点击安装推荐的插件–自动安装一部分插件
创建一个管理员用户
刚刚安装的插件,有的安装失败,重新安装
如图所示修改url 修改为http://mirror.xmission.com/jenkins/updates/current/update-center.json
然后重启jenkins
在这里插入图片描述

四、运行jenkins的docker 容器里面安裝jdk

容器里面自带的jdk 环境可能与项目使用的jdk 环境不一样,需要手动安装指定版本jdk

官网下载对应linux 的版本
https://www.oracle.com/java/technologies/downloads/archive/
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

使用xftp 上传到之前挂载服务器的文件夹 ()的文件夹
进入容器里面

docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id

移动jdk 压缩包文件

mv /var/jenkins_home/jdk-8u421-linux-x64.tar.gz  /home/software

解压缩

tar -zxvf jdk-8u421-linux-x64.tar.gz 

重命名

mv jdk1.8.0_421 jdk8

更新 apt源

apt-get update

修复错误

sudo apt-get update --fix-missing

下载vim 编辑器

apt-get install vim

配置java环境变量

vim /etc/profile
文件底部添加内容,目录一定是jdk 安装目录
#set Java environment
export JAVA_HOME=/home/software/jdk8
export JRE_HOME=/home/software/jdk8/jre
export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

文件立即生效

source /etc/profile

验证jdk 是否安装成功,出现以下内容表示安装成功

[root@hcss-ecs-f3e3 /]# java doc
Error: Could not find or load main class doc
[root@hcss-ecs-f3e3 /]# java -version
java version "1.8.0_421"
Java(TM) SE Runtime Environment (build 1.8.0_421-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.421-b09, mixed mode)

容器内安装maven

maven 版本一定要试用jdk 版本
官网下载
https://maven.apache.org/download.cgi
xftp 上传
进入docker 容器

docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id

移动文件

mv /var/jenkins_home/apache-maven-3.8.1-bin.tar.gz  /home/software

解压缩安装

tar -zxvf apache-maven-3.8.1-bin.tar.gz

重命名

mv apache-maven-3.8.1 maven3.8.1

添加环境变量

vim /etc/profile
文件底部添加
export MAVEN_HOME=/home/software/maven3.8.1
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
// 生效
source /etc/profile

验证安装成功

root@63595cab5fde:/home/software# mvn -version
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /home/software/maven3.8.1
Java version: 1.8.0_421, vendor: Oracle Corporation, runtime: /home/software/jdk8/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.53.1.el7.x86_64", arch: "amd64", family: "unix"

配置maven 私有仓库地址

进入maven 安装地址

root@63595cab5fde:/home/software/maven3.8.1# mkdir repository
root@63595cab5fde:/home/software/maven3.8.1# cd ./repository
root@63595cab5fde:/home/software/maven3.8.1/repository# pwd
/home/software/maven3.8.1/repository
root@63595cab5fde:/home/software/maven3.8.1/repository# 

复制这个路径

编辑maven 配置文件
设置显示行数
:set number
55行添加

<localRepository>/home/software/maven3.8.1/repository</localRepository>

169源注射换为阿里的

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

五、jenkins 配置相关环境

安装插件
Maven Integration: Maven 集成管理插件。
Gitee : Gitee 集成插件。
Publish Over SSH:远程文件发布插件。
SSH : 远程脚本执行插件。
在这里插入图片描述配置jdk
在这里插入图片描述
配置maven
在这里插入图片描述

六、部署gitee项目

创建maven项目
在这里插入图片描述


http://www.kler.cn/news/366680.html

相关文章:

  • 让你的 IDEA 使用更流畅 | IDEA内存修改
  • Ajax:请求 响应
  • 【Linux学习】(5)软件包管理器yum|编辑器vim
  • 一个可以调节笔记本亮度的程序
  • 网络通信与并发编程(六)线程、进程池与线程池
  • 力扣283-- 移动零
  • 物联网数据采集网关详细介绍-天拓四方
  • 跨境支付,哪些国产数据库能接得住?
  • 为什么要使用网络IO内存数据库?
  • 名词(术语)了解--柯里化(Currying)
  • spark读取parquet文件
  • 常见的音视频格式介绍
  • Cilium + ebpf 系列文章- (七)Cilium-LoadBalancer类型的SVC的IPPool
  • 总裁主题CeoMax-Pro主题7.6开心版
  • 在linux系统中查看具体文件大小命令
  • 【C++习题】12.滑动窗口_将 x 减到 0 的最小操作数
  • 通过Docker Compose构建自己的Java项目
  • 【升华】另一个神经网络学习框架pytorch
  • 智能台灯设计(一)原理图设计
  • 大话网络协议:从OSI七层模型说开去
  • Git的原理和使用(六)
  • android 生成json 文件
  • row_number() over (partition by 分组列 order by 排序列 desc)、row_number() 函数、分组排序函数
  • 计算机网络(十二) —— 高级IO
  • 12_Linux进程管理命令详解
  • python如何通过json以及pickle读写保存数据