服务器 
首页 > 服务器 > 浏览文章

基于Docker+Jenkins实现自动化部署的方法

(编辑:jimmy 日期: 2024/11/19 浏览:3 次 )

使用码云搭建Git代码存储仓库

https://gitee.com/login

  • 使用码云创建私有私有git仓库
  • 将本地springboot项目上传到git仓库中

基于Docker安装Jenkins环境

1.使用docker 安装jenkins

docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

2.访问jenkins地址 8080

基于Docker+Jenkins实现自动化部署的方法

注意:第一次启动的时候正在加载jenkins大概会等待3-10分钟。

3.解锁jenkins

基于Docker+Jenkins实现自动化部署的方法

基于Docker+Jenkins实现自动化部署的方法

docker exec -it 7f485bd95c3b /bin/bash 进入jenkins容器 

cat /var/jenkins_home/secrets/initialAdminPassword

基于Docker+Jenkins实现自动化部署的方法

大概需要等待3-10分钟

创建新的用户

基于Docker+Jenkins实现自动化部署的方法

基于Docker+Jenkins实现自动化部署的方法

Jenkins全局工具配置

进入到jenkins容器中 echo $JAVA_HOME 获取java环境安装地址

JDK环境安装

基于Docker+Jenkins实现自动化部署的方法

Maven环境安装

基于Docker+Jenkins实现自动化部署的方法

安装Jenkins对应Maven插件

找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本

插件名称 Maven Integration

基于Docker+Jenkins实现自动化部署的方法

基于Docker+Jenkins实现自动化部署的方法

Jenkins实现Springboot项目自动部署新建一个发布任务

基于Docker+Jenkins实现自动化部署的方法

配置任务git账号密码

基于Docker+Jenkins实现自动化部署的方法

3.项目打包

基于Docker+Jenkins实现自动化部署的方法

clean install

点击立即构建

基于Docker+Jenkins实现自动化部署的方法

第一次构建可能耗时比较长,因为需要下载一些相关依赖jar包

Jenkins启动成功之后执行shll脚本

#!/bin/bash
#服务名称
SERVER_NAME=springboot
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行 
JAR_NAME=springboot-0.0.1-SNAPSHOT
# 源jar路径 
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/springboot/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/springboot/target
 
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
kill -9 $id 
echo "killed $id" 
done
echo "结束进程完成"
 
#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar
Nohub java -jar $JAR_NAME.jar

加nohub 指的是后台运行,或者使用nohub &

容器映射8081端口

1. 重启容器

systemctl restart docker

2. 清空未运行的容器

docker rm $(sudo docker ps -a -q)
docker run -p 8080:8080  -p 8081:8081  -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
上一篇:Linux下遇到PyCurl的错误解决方法
下一篇:Linux rpm、yum指令及使用方法详解
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?