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

https://gitee.com/login

  1. 使用码云创建私有私有git仓库
  2. 将本地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

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

3.解锁jenkins

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

cat /var/jenkins_home/secrets/initialAdminPassword

大概需要等待3-10分钟

创建新的用户

Jenkins全局工具配置

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

JDK环境安装

Maven环境安装

安装Jenkins对应Maven插件

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

插件名称 Maven Integration

Jenkins实现Springboot项目自动部署

  1. 新建一个发布任务

  1. 配置任务git账号密码

3.项目打包

clean install

  1. 点击立即构建

第一次构建可能耗时比较长,因为需要下载一些相关依赖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

基于Docker+Jenkins实现自动化部署的更多相关文章

  1. docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)

    前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...

  2. 基于 Jenkins Pipeline 自动化部署

    最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...

  3. CentOS下Docker与.netcore(四)之 三剑客之一Docker-machine+jenkins简单自动化部署

    CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...

  4. gitlab与jenkins的自动化部署(通过webhook与ansilble)

    gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...

  5. 使用Docker+Jenkins自动构建部署

    环境 Windows 10 Docker Version 18.06.1-ce-win73 (19507) 运行jenkins 运行jenkins 容器 docker run -d --name ln ...

  6. 搭建jenkins实现自动化部署

    搭建jenkins实现自动化部署 一.安装jenkins 1.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://p ...

  7. Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)

    通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...

  8. 【Devops】【docker】【CI/CD】3.Jenkins+GitLab+docker+springboot 实现自动化部署

    ==================================================================================================== ...

  9. Centos7.6上利用docker搭建Jenkins来自动化部署Django项目

    一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚. 整个过程相当复 ...

随机推荐

  1. vmware 共享文件夹不显示文件的问题

    上海SEO:安装vmtools后还是不显示执行以下操作//但是只有root权限才行 1:输入命令  sudo apt install open-vm-tools 安装工具2:输入命令 sudo vmh ...

  2. Linux Redirecting to /bin/systemctl restart iptables.service

    方案 一 1.昨天碰到一个错误,linux下输入命令:service iptables restart时,总会报下面一个提示很简单,这句话的意思就是让你重定向到systemctl然后再启用,白话就是说 ...

  3. js实现图片上传实时显示

    在开发的时候经常遇到这样的需求,用户在上传图片的时候,想要看到自己上传的图片是否正确,这时候需要把用户上传的图片及时显示出来,然后等他点击上传的时候,程序再执行上传到服务器. <!DOCTYPE ...

  4. [bzoj 1471] 不相交路径 (容斥原理)

    题目描述 给出一个N(n<=150)N(n<=150)N(n<=150)个结点的有向无环简单图.给出444个不同的点aaa,bbb,ccc,ddd,定义不相交路径为两条路径,两条路径 ...

  5. SCSS 教程

    https://www.jianshu.com/p/a99764ff3c41 https://www.sass.hk/guide/ 1. 使用变量; sass让人们受益的一个重要特性就是它为css引入 ...

  6. MongoDB 建立与删除索引

    1.1 在独立服务器上面建立索引 在独立服务器上面创建索引,可以在空闲时间于后台建立索引. 在后台建立索引,可利用background:true参数运行 >db.foo.ensureIndex( ...

  7. openssl使用以及C#加密和数字签名

    如何使用openssl生成RSA公钥和私钥对 http://blog.csdn.net/scape1989/article/details/18959657 https://www.openssl ...

  8. jquery验证时间

    http://blog.csdn.net/guguojin/article/details/7045908 验证时间的正则表达式集合 //日期格式yyyy  PatternsDict.date_y= ...

  9. tinymce编辑器从word粘贴公式

    很多时候我们用一些管理系统的时候,发布新闻.公告等文字类信息时,希望能很快的将word里面的内容直接粘贴到富文本编辑器里面,然后发布出来.减少排版复杂的工作量. 下面是借用百度doc 来快速实现这个w ...

  10. python qq发消息

    # 原理是先将需要发送的文本放到剪贴板中,然后将剪贴板内容发送到qq窗口 # 之后模拟按键发送enter键发送消息 import win32gui import win32con import win ...