sonarqube中文版docker 制作及其使用

目标: 1.创建sonarqube 中文版docker
2. 使用postgres 作为存储数据库
3. 运行并测试代码
4. 发布到docker hub 分享
5.在mesos-marathon 平台运行

环境: sonarqube Community Edition版本 7.7 (build 23042)

第一步: 编译镜像前的准备工作
1.1 到docker hub 上搜索最新版的镜像sonarqube:7.7-community
1.2 到https://github.com/SonarQubeCommunity/sonar-l10n-zh.git 下载对应的中文插件包

注意参考下面的兼容矩阵表格:
在这里插入图片描述
1.3 下载对应的插件
https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.27

1.4 创建一个文件夹 sonarqube, 里面结构如下
drwxr-xr-x 9 happy staff 288 4 12 10:33 .
drwxr-xr-x 20 happy staff 640 4 10 23:53 …
drwxr-xr-x 12 happy staff 384 4 12 10:33 .git
-rw-r–r-- 1 happy staff 27 4 12 10:33 .gitignore
-rw-r–r-- 1 happy staff 397 4 12 10:31 Dockerfile
-rw-r–r-- 1 happy staff 282 4 9 16:21 README.md
drwxr-xr-x 7 happy staff 224 4 12 10:50 examples
-rwxr-xr-x 1 happy staff 1093 4 12 10:21 runDockerBuild
drwxr-xr-x 6 happy staff 192 4 12 10:26 software

编写Dockerfile 内容如下:
#more Dockerfile
FROM sonarqube:7.7-community

#https://github.com/SonarQubeCommunity/sonar-l10n-zh.git
RUN rm -rf /opt/sonarqube/extensions/plugins
ADD software/plugins.tgz /opt/sonarqube/extensions/
#中文语言包(其实上面的plugins.tgz包里有这个插件,但是为了确保以后不忘记加入这个中文语言插件包)
ADD software/sonar-l10n-zh-plugin-1.27.jar /opt/sonarqube/extensions/plugins/

#编写runDockerBuild 自动化脚本
#more runDockerBuild

#!/bin/bash
current_shell_file_path= ( c d " (cd " (cd"(dirname “$0”)"; pwd)

cd ${current_shell_file_path}
pwd && ls -a

branch_name=$(git status | grep ‘On branch’ | awk ‘{print $3}’)

if [[ -z $branch_name ]];
then
if [[ -z $1 ]];
then
branch_name=$1
else
echo “请输入镜像标签,如v1.0.0”
exit 1
fi
fi

#sonarqube:lts-alpine-zh
docker build -t ascs/sonarqube:$branch_name . --no-cache=true

如果需要镜像预装好所有的常见插件,则先 运行 一个实例,
然后 docker exec -ti sonarqube_en bash
sonarqube@sonarqube_en:/opt/sonarqube/extensions$ ls
downloads jdbc-driver plugins

把plugins 拷贝出来,变成一个plugins.tgz, 安装镜像的时候安装进去。这样镜像启动后就有了你想要的插件.
先选择你要的插件,然后点击安装,然后重现启动sonarqube, 直到您认为,该装的插件已经安装OK了就可以准备下面的打包了.

docker cp sonarqube_en:/opt/sonarqube/extensions/plugins plugins
tar -czf plugins.tgz plugins

这样插件就准备了。

第二步: 用git 管理文件
git init

happy:sonarqube happy$ more .gitignore
/software/.tgz
software/

examples/pgdata/

第三步: 编译镜像:
happy:sonarqube happy$ git status
On branch 7.7-community-zh-with-plugins

./runDockerBuild

第四步: 测试镜像是否正常
4.1 启动postgre 实例
4.2 启动 sonarqube 实例
4.3 打开网页测试

happy:examples happy$ ls
marathon start-docker.sh start-sonarqube-with-postgres.sh
pgdata start-postgres-docker.sh

happy:examples happy$ more start-sonarqube-with-postgres.sh
#!/bin/bash
docker stop  sonarqube
docker rm    sonarqube
echo "请先启动postgres 数据库"
#下面的IP要设置为运行postgres实例的计算机的IP
host_ip="192.168.2.85"

docker run -d \
--name sonarqube \
--add-host "postgres.tools.devops.marathon.mesos:${host_ip}" \
-e  "sonar.jdbc.username=postgres" \
-e  "sonar.jdbc.password=your_password" \
-e  "TZ=Asia/Shanghai" \
-e  "sonar.jdbc.url=jdbc:postgresql://${host_ip}:5432/sonarqube" \
-p 9000:9000 \
ascs/sonarqube:7.7-community-zh-with-plugins

echo "缺省用户名:admin 缺省密码:admin"
happy:examples happy$ ls
marathon				start-docker.sh				start-sonarqube-with-postgres.sh
pgdata					start-postgres-docker.sh
happy:examples happy$ more start-postgres-docker.sh
#!/bin/bash

docker stop postgres-for-sonarqube
docker rm   postgres-for-sonarqube

docker run -d \
--name postgres-for-sonarqube \
-p 5432:5432 \
-v `pwd`/pgdata:/var/lib/postgresql/data \
-e "POSTGRES_USER=postgres" \
-e "POSTGRES_PASSWORD=your_password" \
-e "POSTGRES_DB=sonarqube" \
postgres:9.6.12-alpine
happy:examples happy$

在这里插入图片描述

打开一款数据连接软件,确认一下数据库真的已经连接成功,并被使用了。
(之前遇到的是数据库配置问题,导致sonarqube使用的是本地H2实例,被红色警告,只能当demo使用)
在这里插入图片描述

第五步: 发布镜像
docker login

docker push ascs/sonarqube:7.7-community-zh-with-plugins

在这里插入图片描述
这样就可以在有互联网的地方随时使用这个镜像了.

docker push ascs/sonarqube:7.7-community-zh-with-plugins

相关代码可以查看 github
https://github.com/HappyFreeAngel/sonarqube-docker.git

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在Docker上部署SonarQube,您需要遵循以下步骤: 1. 首先,您需要安装Docker并确保它正在运行。 2. 接下来,您需要从Docker Hub上下载SonarQube的镜像。您可以使用以下命令: docker pull sonarqube 3. 一旦下载完成,您可以使用以下命令启动SonarQube容器: docker run -d --name sonarqube -p 9000:9000 sonarqube 这将在后台启动SonarQube容器,并将其映射到主机的9000端口。 4. 等待一段时间,直到SonarQube容器启动并运行。您可以使用以下命令检查容器的状态: docker ps 如果容器正在运行,则应该看到一个名为“sonarqube”的容器。 5. 最后,您可以通过浏览器访问SonarQube Web界面,该界面应该在以下URL上可用: http://localhost:9000 您可以使用默认的管理员凭据(用户名:admin,密码:admin)登录到SonarQube中。 希望这可以帮助您在Docker上部署SonarQube。 ### 回答2: SonarQube是一个静态代码分析工具,可以帮助开发人员和团队持续改进代码质量。Docker是一个容器化平台,能够简化应用程序的部署和管理。将SonarQube部署在Docker上可以提高生产力和可扩展性,也能够简化维护和操作。 以下是部署SonarQube的步骤: 第1步:安装DockerDocker Compose 在开始之前,需要确保在本机中已经安装了DockerDocker Compose。安装完成后,可以通过以下命令检查是否成功安装: docker -v docker-compose -v 第2步:创建Docker Compose文件 在将SonarQube部署在Docker上之前,需要创建一个Docker Compose文件。这个文件定义了Docker容器的配置信息,用于部署SonarQube和配置数据库。可以使用以下内容创建docker-compose.yml文件: version: ‘3’ services: sonarqube: image: sonarqube ports: - "9000:9000" depends_on: - db db: image: postgres environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar volumes: - postgresql:/var/lib/postgresql volumes: postgresql: 注意:上述的PostgreSQL配置是用于在Docker容器中部署SonarQube使用的。如果使用外部数据源,则需要进行更改。 第3步:启动Docker容器 在创建了Docker Compose文件后,可以使用以下命令启动Docker容器: docker-compose up -d 这样就可以在后台启动SonarQube容器。 第4步:访问SonarQube 在启动Docker容器后,可以在浏览器中输入http://localhost:9000访问SonarQube。可以按照提示完成配置,并创建一个新的项目。 这样,SonarQube就成功的部署在了Docker上。使用Docker部署SonarQube是一个非常方便的方式,它简化了部署的过程,并提高了生产力和可扩展性。此外,使用Docker还可以轻松地将SonarQube集成到CI/CD流程中,帮助团队更好的持续改进代码质量。 ### 回答3: SonarQube是一款用于静态代码分析的开源软件,它可以对代码进行细致的检查并提供有关代码质量、复杂性和安全性方面的反馈。在团队合作开发的过程中,SonarQube能够帮助团队有效控制代码的质量,从而提高代码的可读性、可维护性和安全性。而Docker是一种轻量级的容器化技术,它可以将应用程序和其依赖的环境打包成一个完整的容器,方便部署和管理。因此,将SonarQubeDocker结合起来使用是一种方便、高效和安全的部署方式。 部署SonarQubeDocker上需要以下几个步骤: 1. 下载SonarQube镜像:通过Docker Hub从公共的镜像仓库下载SonarQube镜像。可以使用以下命令:docker pull sonarqube:latest 2. 创建容器:使用以下命令创建SonarQube容器。docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube:latest 其中,-d参数表示在后台运行容器,--name参数指定容器的名称,-p参数映射容器内部的端口到宿主机上的端口。 3. 访问SonarQube:通过浏览器访问http://localhost:9000(或使用宿主机的IP地址)。在第一次启动时,需要输入默认的用户名和密码(admin/admin)进行登录。 4. 配置SonarQube:在SonarQube页面上,可以进行一些配置,例如添加项目、配置扫描程序。 由于SonarQube的运行需要占用一定的系统资源,因此可以通过在Docker容器中使用资源限制措施来保证宿主机的性能。例如可以使用以下命令设置CPU和内存的限制: docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 --cpus=2 --memory=4g sonarqube:latest 此外,如果需要将SonarQube的数据和配置保存在宿主机上,可以将其挂载到容器中。例如,可以使用以下命令将宿主机的/data/sonarqube目录挂载到容器的/opt/sonarqube目录下: docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 --mount type=bind,src=/data/sonarqube,dst=/opt/sonarqube sonarqube:latest 综上所述,将SonarQube部署在Docker上能够方便地进行静态代码分析,并且避免了对宿主机的污染。这种部署方式使得SonarQube使用更加便捷、高效、可控和安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心自由天使

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值