如何做网站编辑代码,中机建设一公司网站,响水建设局网站,牛网站1.jenkins应用
1.jenkins构建的流程 1.使用git参数化构建#xff0c;用标签区分版本
2.git 拉取gitlab远程仓库代码
3.maven打包项目
4.sonarqube经行代码质量检测
5.自定义制作镜像发送到远程仓库harbor
6.在远程服务器上拉取代码启动容器
这个是构建的整个过程和步骤…1.jenkins应用
1.jenkins构建的流程 1.使用git参数化构建用标签区分版本
2.git 拉取gitlab远程仓库代码
3.maven打包项目
4.sonarqube经行代码质量检测
5.自定义制作镜像发送到远程仓库harbor
6.在远程服务器上拉取代码启动容器
这个是构建的整个过程和步骤需要安装好gitlabjenkins 、harbor、sonarqube
2jenkins用到的软件及环境配置
上一章讲述了gitlab 和jenkins的容器化搭建接着将Jenkins容器使用docker docker 的进程/run/docker.sock 共享给jenkins使用默认docker.sock 的属主是root属组是docker
#1修改docker权限
chown root:root /run/docker.sock #修改属主和属组
chmod orwx /run/docker.sock #增加权限#2添加harbor仓库
cat /etc/docker/daemon.jsonEOF
{insecure-registries: [http://192.168.88.121:80] #指定远程仓库后边使用改成harbor的#IP和端口
}
EOF
systemctl restart docker #重启docker生效#3.配置jenkins使用docker
cat /usr/local/docker/jenkins_docker/docker-compose.yamlEOF
version: 3.1
services:jenkins:image: jenkins/jenkins:2.387.3-ltscontainer_name: jenkinsrestart: alwaysports:- 8080:8080- 50000:50000volumes:- ./data:/var/jenkins_home/- /var/run/docker.sock:/var/run/docker.sock #共享docker- /usr/bin/docker:/usr/bin/docker #添加docker到bin直接使用命令- /etc/docker/daemon.json:/etc/docker/daemon.json #共享远程仓库
EOF
cd /usr/local/docker/jenkins_docker/
docker compose -f /usr/local/docker/jenkins_docker/docker-compose.yaml up -d #重新创建jenkins
3.harbor仓库搭建
1.harbor软件下载与配置
wget -t 0 -c https://github.com/goharbor/harbor/releases/download/v2.0.5/harbor-offline-installer-v2.0.5.tgz
#harbor的配置默认用户名admin密码Harbor12345
#配置完harbor后登录到harbor创建目录repo
#!/bin/bash
tar -xf harbor-offline-installer-v2.0.5.tgz
cd harbor/
cp harbor.yml.tmpl harbor.yml
sed -i /^hostname/s,reg.mydomain.com,192.168.88.121, harbor.yml #指定harbor的IP地址
sed -i /^https:/s,^,#, harbor.yml
sed -i /port: 443/s,^,#, harbor.yml
sed -i / certificate/s,^,#, harbor.yml
sed -i /private_key/s,^,#, harbor.yml
sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
./install.sh #安装harbor
cd ../
http://192.168.88.121:80
harbor的配置默认用户名admin密码Harbor12345 配置完harbor后登录到harbor创建目录repo,公开 4.sonarqube下载原装
1.sonarqube采用容器部署
mkdir /usr/local/docker/sonarqube_docker
cd /usr/local/docker/sonarqube_docker
cat docker-compose.yamlEOF
version: 3.1
services:db:image: postgrescontainer_name: dbports:- 5432:5432networks:- sonarnetenvironment:POSTGRES_USER: sonarPOSTGRES_PASSWORD: sonarsonarqube:image: sonarqube:8.9.6-communitycontainer_name: sonarqubedepends_on:- dbports:- 9000:9000networks:- sonarnetenvironment:SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonarSONAR_JDBC_USERNAME: sonarSONAR_JDBC_PASSWORD: sonar
networks:sonarnet:driver: bridge
EOF
grep -i vm.max_map_count /etc/sysctl.conf
[ $? -eq 0 ] || sed -i $a vm.max_map_count262144 /etc/sysctl.conf #不配置会报错
sysctl -p
docker compose -f docker-compose.yaml up -d
#localhost:9000
#sonarqube默认用户名和密码都是admin
http://localhost:9000 2.sonarqube默认用户名和密码都是admin 进去后会提示修改密码 3.保存好tocker,jenkins验证用到 5.sonar-sconner下载配置到jenkins
SonarScanner CLI (sonarsource.com)
1下载sonar-scanner-cli-4.6.0.2311-linux.zip 2.conf/sonar-scanner.properties配置
#!/bin/bash
unzip ~/sonar-scanner-cli-4.6.0.2311-linux.zip
mv sonar-scanner-4.6.0.2311-linux/ sonar-scannercat sonar-scanner/conf/sonar-scanner.properties EOF
#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here#----- Default SonarQube server
sonar.host.urlhttp://192.168.88.121:9000 #指定IP及单口#----- Default source code encoding
sonar.sourceEncodingUTF-8
EOFmv sonar-scanne /usr/local/docker/jenkins_docker/data/ #放入到jenins目录下和JDK、maven一样 6jenkins登录进去
1、插件安装sonar 2.sonar-scanner全局变量配置 3.sonar-scanner系统配置 7项目构建
1新建项目test 2.git参数化构建 3.2个文本参数构建 4.git拉取代码 5.清空之前的workspace及切换标签版本 6.maven打包 7sonar代码质量检测
sonar.projectname${JOB_NAME} #指定项目名 sonar.projectKey${JOB_NAME} #指定Key sonar.source./ #在当前目录对代码检测 sonar.java.binariestarget/ #jar包 7.制作镜像并上传到远程仓库harbor
mv target/*.jar docker/
cd docker/
docker build -t ${JOB_NAME}:$tag ./
docker login -u admin -p Harbor12345 192.168.88.121:80
docker tag ${JOB_NAME}:$tag 192.168.88.121:80/repo/${JOB_NAME}:$tag
docker push 192.168.88.121:80/repo/${JOB_NAME}:$tag 8.构建后在远程服务器下载镜像启动容器进行测试
#1.在远程服务器执行的shell命令
docker.sh 192.168.88.121:80 repo ${JOB_NAME} $tag $container_port $host_port#2.脚本docke.sh 在远程服务器/usr/local/bin/docker.sh
cat /usr/local/bin/docker.shEOF
#!/bin/bash
horbar_addr$1 #harbor镜像地址及端口
horbar_repo$2 #镜像所在的目录为repo
project$3 #项目名称所谓镜像名
version$4 #项目版本所闻镜像版本
container_port$5 #容器内使用的端口
host_port$6 #宿主机使用的端口
imageName$horbar_addr/$horbar_repo/$project:$version #镜像的地址及镜像名和版本
echo $imageName
containerIddocker ps -a | awk {print $1, $NF} | grep $project | awk {print $1} #删除当前正在运行的容器
echo $containerId
if [ $containerId ! ] ; thenecho 正在删除${project}容器#docker stop $containerIddocker rm -f $containerId
fi
tagdocker images | grep ${project} | awk {print $2}
echo $tag
if [[ $tag ~ $version ]] ; thendocker rmi -f $imageName
fi
docker login -u admin -p Harbor12345 $horbar_addr
docker pull $imageName #下载镜像
docker run -d -p $host_port:$container_port --name $project $imageName #启动测试容器
echo ${project}容器创建成功
echo SUCCESSEOF 9.开始构建 8构建结果验证
1.代码质量检测 2.查看容器是否正常运行