idea-jenkins-gitlab(自由风格)
#先创一个新项目




#浏览器输入local host:8080/test访问
#然后去gitlab创建新项目
复制那个gitlab config --global那俩个来到


选择所在项目文件夹即可

全部勾选


下一个页面直接push
#jenkins打包前面正常

直接save,然后构建,就会多个target和jar包了


#下载插件publish SSH
system配置
#私钥填jenkins服务器的私钥,然后把自己的公钥给远程服务器并命名为authorized_keys才能实现连接——简而言之就是把自己的公钥给别人

#这样就会把target下的jar包放到ssh的/usr/local/test (我把/root改了) 下,会生成应该target里面就是jar包
·第一次要输入绝对路径

解释一下:这是在干嘛——把target下的jar包和docker下的所有文件都传到远程登录的/usr/locl/test目录下并生成了target目录和docker目录,target目录存放着jar包,docker下有dockerfile,dockr-compose.yml
小tips,不断构建的同名的版本一样的镜像都显示none,
输入命令 docker image prune -f 即可删除,就可以把该命令也加到jenkins构建后操作那

#根据版本标签去拉去和构建工程
先在jenkins下载插件git parameter




#然后去git仓库打标签



#更可视化在docker-compose.yml更改新版本版本号

每改完一个新版本提交到git仓库后就创建新标签,之后就可以以及标签构建了


#代码检查工具
sonarqube,需要数据库postgres支持
1.docker pull postgres:13
2. docker pull sonarqube:9.9-community (已保存tar包)
#docker-compose.yml
version: "3.1"
services:
db:
image: postgres:13
container_name: db
ports:
- "5432:5432"
networks:
- sonarnet
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U sonar -d sonar"]
interval: 5s
timeout: 5s
retries: 10sonarqube:
image: sonarqube:9.9-community
container_name: sonarqube
depends_on:
- db
ports:
- "9000:9000"
networks:
- sonarnet
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
SONAR_ES_BOOTSTRAP_CHECKS_DISABLE: true
restart: alwaysnetworks:
sonarnet:
driver: bridge
#然后
docker-compose down
docker-compose up -d
#maven配置



然后修改maven/conf/setting.xml文件(添加蓝色字段)

idea输入mvn sonar:sonar即可


#配置sonar-scanner
1.将安装好的zip包解压到/jenkins_data目录与workspace同级
2.然后进入sonar-scanner目录下的conf修改里面的文件
将localhost改成本机ip,把utf-8打开
3.就可以进入workspace里的项目文件里执行sonar-scanner命令
/data/jenkins/jenkins_data/sonar-sccaner/bin/sonar-scanner -Dsoanr.projectname=linux-test -Dsonar.login=squ_059b9e9736746d4806c86ab1361baf01003bc7fd -Dsonar.projectKey=linux-test -Dsonar.java.binaries=./target/
#-D前面是找到sonar-scanner的执行文件,后面的参数先把加深部分写了后面缺啥回车后会告诉你的
这个token去sonar上获取
#完成后就会生成了

#jenkins-sonarqube配置
去advance 插件处添加sonar.hpi(已存包)
然后去system配置
#并在构建项目时添加命令,在打包后
#v3.0.0先不构建工程仅打包镜像上harbor
在构建后操作添加执行shell——v3版暂时不要docker-compose.yml不要
#解释一下,把项目目录下的target下的jar包放到docker目录下与dockerfile同级,然后docker build结合./docker的dockerfile创建镜像,然后登录harbor仓库,给镜像打标签,
docker 镜像名:版本 仓库地址/仓库名/镜像版本,
#最后推送镜像
#在目标服务器先写好构建doacker脚本再用jenkins
vi deploy.sh
deploy.sh
harbor_addr=$1
harbor_name=$2
project=$3
version=$4
port=$5
imagename=$harbor_addr/$harbor_name/$project:$versionecho $imagename
container_list=$(docker ps -a | grep $project | awk '{print $1}')
for cid in $container_list
do
if [ "$cid" != "" ];then
docker stop $cid
docker rm $cid
fi
done
tag=`docker images | grep $project | awk '{printf $2}'`
echo $tagif [[ "$tag" =~ $version ]];then
docker rmi $imagename
fidocker login -u ljh -p Aspirine1 $harbor_addr
docker pull $imagename
docker run -d -p $port:$port --name $project $imagename
echo "success"
#jenkins添加port参数


#或者将deploy文件放到环境变量就不用切换目录了,如下(可选)

#这样其实没能正常访问8081
通过docker logs -f mytest 查看日志,(小失误其实跟这个8080没关系但确实是端口映射错了,知道这个查日志命令还是不错的嘿嘿^_^)
并非8081
#修改处1
#修改处2,jenkins上添加上host_port ,containner_port参数,还有执行命令时也加上新增参数即可
更多推荐

















所有评论(0)