#先创一个新项目

#浏览器输入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: 10

  sonarqube:
    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: always

networks:
  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:$version

echo $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 $tag

if [[ "$tag" =~ $version ]];then
docker rmi $imagename
fi

docker 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参数,还有执行命令时也加上新增参数即可

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐