jenkins安装尽量不要用Docker来安装,不然会有很多坑,用我下面的方法去安装
JDK
yum install java-1.8.0-openjdk* -y
安装目录:
/usr/lib/jvm
yum -y install epel-release
yum -y install daemonize
安装jenkins
镜像
https://mirrors.aliyun.com/jenkins/redhat-stable/?spm=a2c6h.25603864.0.0.5103166aqfIgQr
rpm -ivh jenkins-2.319.1-1.1.noarch.rpm
#修改
vi /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_PORT="8888"
#重启
systemctl start jenkins
systemctl enable jenkins
访问接口
http://192.168.182.130:8888/
#修改镜像源
cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
Global Tool Configuration配置
查询java和maven环境
cat /etc/profile
末尾如下配置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export MAVEN_HOME=/usr/share/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
根据环境配置git、maven、jdk
Configure System配置
找到 < 全局属性>
JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk
M2_HOME
/usr/share/maven
PATH+EXTRA
$M2_HOME/bin
构建流水线项目(pipline)教程和模板
去插件中心插件安装 pipeline
使用pipeline script 构建流水
模板
pipeline {
agent any
stages {
stage('pull code') {
steps {
echo 'pull code'
}
}
stage('build project') {
steps {
echo 'build project'
}
}
stage('publish code') {
steps {
echo 'publish code'
}
}
}
}
第一步、打开流水线语法
使用片段生成器生成流水线脚本,
拉取代码
选择checkout: Check out from version controll
=>设置git仓库地址和 Credentials=>生成流水线脚本===>
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitee-auth-password', url: 'https://gitee.com/xxxx/xxxx.git']]])
===>放到steps中如下:
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitee-auth-password', url: ''https://gitee.com/xxxx/xxxx.git']]])
}
}
stage('build project') {
steps {
echo 'build project'
}
}
stage('publish code') {
steps {
echo 'publish code'
}
}
}
}
构建项目
同理选择 sh: Shell Script===>输入打包命令 mvn clean package -Dmaven.test.skip=true===>执行得到流水线脚本 sh ‘mvn clean package -Dmaven.test.skip=true’
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitee-auth-password', url: ''https://gitee.com/xxxx/xxxx.git']]])
}
}
stage('bulid code') {
steps {
echo 'bulid code'
}
}
stage('build project') {
steps {
sh 'mvn clean package -Dmaven.test.skip=true'
}
}
stage('publish code') {
steps {
echo 'publish code'
}
}
}
}
项目部署
stage('deploy demo'){
steps{
sh '''#!/bin/bash
echo \'build start demo!\'
#切换到要部署的微服务目录下,jenkins执行时,默认在workspace下的当前总工程下操作脚本
cd ./demo
#微服务起个名字(起个镜像名字)
service_name="demo"
#exposure port
service_port=20000
#app version
service_version="v0.0.1"
#查看容器id
CID=$(docker ps -a | grep "$service_name" | awk \'{print $1}\')
echo "CID $CID"
if [ -n "$CID" ]
then
echo "exist $service_name container,CID=$CID"
#停止
docker stop $CID
#删除容器
docker rm $CID
else
echo "no exist $SERVER_NAME container"
fi
#查看镜像id,并且输出第3列,赋值给IID
IID=$(docker images | grep "$service_name" | awk \'{print $3}\')
echo "IID $IID"
if [ -n "$IID" ]
then
echo "exist $SERVER_NAME image,IID=$IID"
#删除镜像
docker rmi -f $IID
echo "delete $SERVER_NAME image"
#构建
docker build -t $service_name:$service_version .
echo "build $SERVER_NAME image"
else
echo "no exist $SERVER_NAME image,build docker"
#构建
docker build -t $service_name:$service_version .
echo "build $SERVER_NAME image"
fi
#启动
echo "docker run image=$service_name:$service_version"
docker run -d --name $service_name -p $service_port:$service_port $service_name:$service_version
#查看启动日志
#docker logs -f $service_name'''
}
}
将这个steps 放到里面,每个微服务都一样操作
stage(‘publish code’) {
steps {
echo ‘publish code’
}
}
使用 pipeline script from SCM 方式实现流水
写好Jenkinsfile后,放到idea项目的根目录下,注意是J是大写的,然后推送到远程仓库
然后流水线使用 pipeline script from SCM
,弃用UI界面的pipeline script
流水方式
Jenkins代码审查配置SonarQube
服务器安装SonarQube
https://blog.csdn.net/weixin_45031570/article/details/127988716?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127988716%22%2C%22source%22%3A%22weixin_45031570%22%7D
jenkins管理插件下载安装SonarQube
然后在Global Tool Configuration
中安装SonarQube Scanner
在Configure system
中配置SonarQube servers
,并且吧SonarQube的token写入配置里