Docker安装实践Jenkins

本文介绍如何使用Docker安装Jenkins和Sonarqube,实现自动化构建、部署及代码质量检查。涵盖Docker镜像下载、容器启动配置、Jenkins与Sonarqube的安装、配置及集成步骤。


Jenkins是开源的CI&CD软件领导者,提供超过1000个插件支持构建、部署、自动化,满足任何项目需要。
CI,持续集成,团队内开发成员经常集成各自组件,每次集成通过自动化的构建(编译,自动化测试,打包)来验证,从而尽早的发现集成错误。(监控版本变化并自动构建)。

在这里插入图片描述

CD,持续交付,在持续集成的基础之上,将集成后的代码自动部署、自动测试,并自动或手动的部署生产环境。减少软件开发的成本和时间,减少风险。更快的给用户提供价值。
在这里插入图片描述
持续集成,自动构建,自动化测试,降低风险,量化覆盖率,代码检查,监控版本变化,回滚,自动化部署,一键部署,简化交付过程。
Jenkins特性

  • 持续集成&持续交付
  • 简易安装
  • 配置简单
  • 插件丰富
  • 可扩展
  • 分布式
  • 最广泛的CI&CD工具
    下面借助于Docker安装实践Jenkins,实现项目的构建,部署,自动化测试。 首先根据需求选择自己需要的版本,这里选择最新版本。
    下载镜像
docker pull jenkins/jenkins:lts

如果是第一次现在Docker镜像,下载会比较慢,这时候我们可以使用国内的镜像下载源,下面使用阿里云的下载源。
阿里云为注册用户提供了免费的镜像源,需要开通使用,登录阿里云控制台首页,打开容器镜像服务,镜像加速器,阿里云为您提供了专有的镜像下载URL,提高了镜像下载速度。复制链接,在/etc/docker/目录下创建daemon.json,并新增如下内容

{
  "registry-mirrors": ["https://x7resce5.mirror.aliyuncs.com"]
}

其中链接是你的专有链接,然后重启docker服务

service docker restart

启动容器

下载完成后,通过命令可以看到已经下载完成的docker镜像

[root@localhost]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins             latest              cd14cecfdb3a        2 years ago         696MB

创建Jenkins数据目录,并进入目录。

mkdir -p jenkins/data
cd jenkins

运行Jenkins容器
使用命令

docker run -itd --rm --name jenkins --privileged=true -p 80:8080 -p 50000:50000 -v $PWD/data:/var/jenkins_home jenkins/jenkins:lts

命令的意义为
-i,开启容器的标准输入STDIN
-t,容器分配伪终端
-d,后台运行容器
–rm,删除已有名称为jenkins的容器
–name jenlins,指定容器的名称为jenkins
–privileged=true,给予容器root权限,避免权限问题,根据情况使用
-p 80:8080,容器的8080端口映射到宿主机的80端口
-p 50000:50000,容器的5000端口,映射到宿主机的5000端口
-v $PWD/data:/var/jenkins_home,当前目录的data目录挂载到容器的/var/jenkins_home目录,存储jenkins数据
jenkins/jenkins:lts,指定镜像以及镜像版本
启动成功后,使用宿主机的ip进入jenkins页面

配置Jenkins

安装完成之后,安装插件,如果想要中文版,安装汉化插件。还需要安装SVN或者Git的源码管理插件,对于Java Maven的项目构建,需要安装Maven Integrate插件,还需要配置Java和Maven的环境。
对于安装插件这里不再赘述,具体的操作界面,按照页面操作操作即可。具体在Jenkins的系统管理页面可以找到。
下面使用sonarqube作为代码检查工具,检查代码质量。

配置Sonarqube

安装配置postgreSQL,作为Sonarqube的存储数据库
选择12.3版本,下载镜像

docker pull postgres:12.3

创建数据目录和日志目录,用于存储数据和目录

$ mkdir postgres
$ cd postgres
$ mkdir data
$ mkdir logs

启动postgresql容器

$ docker run --name="postgres" --privileged=true --restart=always -e POSTGRES_PASSWORD=postgres -p5432:5432 -itd -v $PWD/data:/var/lib/postgresql/data -v $PWD/logs:/var/logs/postgresql postgres:12.3

创建sonarcube使用的数据库和用户名,创建sonarcube用户,创建sonarcube数据库,并授权给sonarcube用户

$ docker exec -it postgres psql -U postgres
psql (12.3 (Debian 12.3-1.pgdg100+1))
Type "help" for help.
postgres=# 
postgres=# create user sonarqube with password 'sonarqube';
CREATE ROLE
postgres=# create database sonarqube owner sonarqube;
CREATE DATABASE
postgres=# grant all  on database sonarqube to sonarqube;
GRANT
postgres=# create schema my_schema;
CREATE SCHEMA
postgres=# ALTER USER postgres with encrypted password 'postgres';
exit

重新启动postgresql

$ docker restart postgres

安装配置SonarQube
选择lts(long time support)版本,下载镜像

$ docker pull sonarqube:lts

创建安装目录

$ mkdir sonarqube
$ cd sonarqube/
$ mkdir conf
$ mkdir extensions
$ mkdir logs
$ mkdir data

在conf目录下创建sonar.properties配置文件,并增加配置

sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube?currentSchema=my_schema
sonar.web.host=0.0.0.0
sonar.web.port=9000

启动容器

$ docker run --restart=always --privileged=true --name="sonarqube" -p 9000:9000 -v $PWD/conf:/opt/sonarqube/conf -v $PWD/extensions:/opt/sonarqube/extensions -v $PWD/logs:/opt/sonarqube/logs -v $PWD/data:/opt/sonarqube/data sonarqube:lts

-itd,后台运行,启动stdin标准输入,并开启容器伪终端
–restart=always,设定重启策略为always,即容器退出后自动重启
–privileged=true,给予容器运行最高root权限
–name=“sonarqube”,容器名称为sonarqube
-p 9000:9000,宿主机的9000端口映射容器的9000端口
-v $PWD/logs:/opt/sonarqube/logs,当前目录下的logs目录,挂载到容器的/opt/sonarqube/logs目录
-v $PWD/extensions:/opt/sonarqube/extensions,当前目录下的extensions目录挂载到容器的/opt/sonarqube/extensions目录
-v $PWD/logs:/opt/sonarqube/logs,当前目录下的logs目录,挂载到容器的/opt/sonarqube/logs目录
-v $PWD/data:/opt/sonarqube/data,当前目录下的data目录,挂载到容器的/opt/sonarqube/data目录
sonarqube:lts,指定镜像名称和版本号
其中各个命令的意义为
测试sonar,打开 http://{ip}:9000/
默认用户名admin,默认密码admin,可以开始使用sonarqube了。

jenkins集成Sonarqube

登录搭建好的sonarqube,安装汉化包,安装需要检查的代码插件如ckeckstyle,findbugs等,在安装插件的过程会比较慢,可能需要线下安装,只需要下载插件,放到sonarqube安装目录的/extensions/plugins目录下就可以使用了。
在sonarqube中创建项目,填写项目标识。
在jenkins安装sonarqube scanner插件,创建Jenkins任务,配置Java,Maven的运行环境,配置代码库,在Post Steps栏配置如下。
在这里插入图片描述
其中Analysis properties详细如下:

sonar.host.url=http://{IP}:9000
sonar.login=admin
sonar.password=admin
sonar.projectKey=sonar中的项目标识
sonar.projectName=sonar中的项目名称
sonar.projectVersion=v1.0
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE/service/target  #编译后的class所在路径

在jenkins构建成功后,生成的报告如下图。
在这里插入图片描述
下面就可以根据sonar检查出的问题,提高代码质量了。
(完^_^)

资源下载链接为:https://pan.quark.cn/s/22ca96b7bd39中国情绪图片库(CAPS)包含 852 张经严格挑选的图片,是用于研究人类情绪反应的刺激材料。这些图片无文字描述,内容清晰、含义明确,突出情绪刺激物,且具东方特色,反映与西方不同的文化背景。156 名大学生(男女比例约 1:1,平均年龄 22 岁)对每张图片从愉悦度、唤醒度和优势度三个维度按 9 点量表评分。其中,愉悦度体现个体对图片的正负面情绪反应,唤醒度代表情绪反应强度或情绪激活水平,优势度指情绪体验中个体感受的控制或支配程度。CAPS 数据库由此形成,包含各维度平均分和标准差。统计分析表明,这些图片在三维度上均具高内部一致性和重测信度,情绪唤起效果和实用性良好。除唤醒度外,男性在另两维度评分普遍高于女性。研究者可根据实验目的,如研究高唤醒度情绪反应,挑选相应高分图片。CAPS 还提供图片示例及具体分数,如飞行器、滑冰、熊猫等场景,方便研究者选择情绪刺激材料。但因技术原因,部分内容可能由 OCR 扫描得来,存在文字识别错误或漏识别风险,需结合文意准确解读。CAPS 作为科学化资源,为中国乃至全球科研人员提供标准化东方特色情绪图片材料,助力情绪心理学、认知科学等领域研究,对了解人类不同情绪状态下的大脑反应及在心理治疗、人工智能情感识别等领域应用都有重要意义。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值