Docker部署Jenkins发布Springboot程序

持续集成/CI(Continuous integration),频繁将已完成的,代码提交到主干。
持续交付/CD(Continuous delivery),频繁将软件最新版本交给质量团队或用户进行评审。
持续部署/CD(Continuous deployment),指通过评审的代码自动部署到生产环境。
持续部署的前提是能自动化完成测试、构建、部署等步骤。

1、docker安装jenkins

docker pull jenkins/jenkins
mkdir /home/jenkins
chown -R 1000:1000 /home/jenkins/
docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home jenkins/jenkins:latest

2、jenkins配置

  • 安装默认所有插件
  • 创建管理员账号
  • 修改插件国内镜像源:依次点击Maanage Jenkins→Manage Plugins→【Advanced,划到最下面修改升级站点URLhttps://repo.huaweicloud.com/jenkins/updates/update-center.json
  • 配置Global Tool Configuration下的jdk、maven、git等信息。
  • 凭据配置:依次点击【Manage Jenkins】→【Manage Credentials】,点击【全局】→【添加凭据】添加gitee账号密码。

4、免密访问应用服务器

  • jenkins服务器生成秘钥对,将公钥复制到应用服务器的 ~/.ssh/authorized_keys
ssh-keygen -m PEM -t rsa

5、创建Maven项目

  • 在【Source Code Management】——>【Git】处输入仓库地址、选择凭据。
  • 配置Pro Steps,在Goals and options 添加:clean package -U -Dmaven.test.skip=true
  • 点击【Build Now】进行构建,点击【Build History】下的构建进程,选择【Console Output】查看输出。
  • 点击【Workspace】查看源代码。
  • 配置Post Steps, 选择 Execute shell,放置发布脚本。

程序发布脚本

#!/bin/bash

# 定义部署的目录和项目名称
DIR="/home/project"
projectName="wuzichaoshi"

# 待部署的应用服务器
server_ips="10.112.1.71"
for server_ip in ${server_ips[@]}; do

    echo "ssh连接服务器。"
    ssh -Tq -oStrictHostKeyChecking=no root@${server_ip} <

start.sh

#!/bin/bash
set -e #一旦报错立即停止                                                                                                                                                                                                                                                      
set -o pipefail
  
# 添加JDK路径
JAVA_HOME=/usr/local/jdk1.8
  
# 项目根目录和项目名称
DIR="/home/project"
projectName="wuzichaoshi"
 
nohup $JAVA_HOME/bin/java -jar ${DIR}/${projectName}/${projectName}.jar > release_out.log 2>&1 &
 
echo $! > /var/run/${projectName}.pid

stop.sh

#!/bin/bash
  
# 项目根目录和项目名称
projectName="wuzichaoshi"
  
PID=$(cat /var/run/${projectName}.pid)                                                                                                                                                                                                                                        
kill -9 $PID

参考:https://www.cnblogs.com/dyd168/p/14391485.html

你可能感兴趣的:(Docker部署Jenkins发布Springboot程序)