docker部署SonarQube流程及相关问题汇总
环境说明:
sonarqube版本:10.4.1-community
PostgreSql版本:14.1
系统环境:centos7.6(x86_64)
部署流程
1、PostgreSql的安装部署
在docker中拉取最新版本镜像,命令如下:
docker pull postgres
镜像拉取成功后执行如下命令创建PostgreSql容器:
docker run --name postgres -e POSTGRES_PASSWORD=sonar123 -p 5432:5432 -v /home/zx/postgres/data:/var/lib/postgresql/data -d postgres
其中数据库用户名为:postgres,密码为:sonar123,端口为5432,挂载本地磁盘路径为:/home/zx/postgres/data,镜像名称为:postgres
创建成功后使用docker ps查看postgres容器是否正常启动,并通过数据库客户端工具进行连接验证。
2、创建sonar用户
连接数据库后执行如下SQL语句:
DROP DATABASE IF EXISTS sonarqube;
CREATE DATABASE sonarqube WITH ENCODING = 'UTF8';
CREATE USER sonarqube WITH PASSWORD 'sonarqube';
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
GRANT ALL PRIVILEGES ON all tables in schema public TO sonarqube;
初始化PostgreSQL数据库,创建sonarqube数据库及用户,并关联授权,通过客户端可登录sonarqube数据库,如下图所示。

3、SonarQube安装部署
拉取SonarQube镜像,命令如下:
docker pull sonarqube:10.4.1-community
修改宿主机最大内存映射区域数
临时修改,系统重启后失效,命令如下:
sysctl -w vm.max_map_count=262144
永久修改,编辑 /etc/sysctl.conf 文件,添加 vm.max_map_count=262144,命令如下:
vi /etc/sysctl.conf
创新SonarQube容器,命令如下:
docker run -d --name sonarqube -p 9000:9000 \
-v /opt/sonarqube/data:/opt/sonarqube/data \
-v /opt/sonarqube/extensions:/opt/sonarqube/extensions \
-v /opt/sonarqube/logs:/opt/sonarqube/logs \
-v /opt/sonarqube/temp:/opt/sonarqube/temp \
-e SONAR_JDBC_URL="jdbc:postgresql://127.0.0.1:5432/sonarqube?useUnicode=true&characterEncoding=utf-8" \
-e SONAR_JDBC_USERNAME="sonarqube" \
-e SONAR_JDBC_PASSWORD="sonarqube" \
-e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
sonarqube:10.4.1-community
其中数据库ip建议改为宿主机ip,如果sonarqube容器启动失败,可执行以下命令查看日志:
docker logs -f -t --tail 200 sonarqube
本次部署遇到java.lang.IllegalArgumentException: Unable to create shared memory 等问题:

分析原因:查看文件权限发现之前使用root用户无法读取文件,可使用如下命令进行授权:
sudo chmod 777 /opt/sonarqube/*
再次重启sonarqube容器,容器正常,可通过http://ip:9000进行验证。
重启容器命令:
docker restart sonarqube

docker部署SonarQube流程及相关问题汇总的更多相关文章
- docker部署安装流程第一版
docker部署安装流程第一版 1.以Dockerfile的方式进行构建docker 以cloud 新联盟为例 dockerfile from hub.c.163.com/library/maven ...
- .Net之Docker部署详细流程
开篇语 自己从头开始走一遍docker部署.net的流程,作为一种学习总结,以及后续会写一些在该基础之上的文章. 本次示例环境:vs2019.net5.docker.postman 创建项目 本次事例 ...
- Docker部署SonarQube
依赖 CentOS 7.2+ docker 1.13+ docker-compose 1.20+ 将下面文件内容另存为docker-compose.yml文件,执行docker-compose up ...
- 如何使用Docker部署一个Go Web应用程序
熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...
- Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery
前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...
- docker部署Asp.net core应用
1 容器概念 使用Docker前我们首先要简单了解一下容器的概念.MSDN上有一张虚拟机和容器的对比图,很好的展示了虚拟机和容器的区别,如下所示,虚拟机包括应用程序.必需的库或二进制文件以及完整的来宾 ...
- AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
一.前言 (Jenkins.Docker.Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色 角色 环境 功能 开发机 Win10.Docker(Linux OS) 编码.调试 ...
- 笔记14:Docker 部署Python项目
Docker 部署Python项目 导读: 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如果从一种操作系统里面运行另一种操作系统,通常我们采取 ...
- Ubuntu 16.04下使用docker部署ceph集群
ceph集群docker部署 通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的:假设你只有一台机器,装了linux(如Ubun ...
- 自动化测试平台环境docker部署
参考资料:testin云测 https://www.testin.cn接口自动化测试平台:http://120.79.232.23星云测试 http://www.threadingtest.com腾讯 ...
随机推荐
- Thymeleaf遍历选中多个复选框
使用场景:用户角色一对多关联关系 <!-- roleList:所有角色信息 :userRoleList:用户已有角色id列表--> <input th:each="role ...
- form-create-designer中怎么扩展自定义组件
form-create-designer中怎么扩展自定义组件 form-create-designer 是基于 @form-create/element-ui实现的表单设计器组件.可以通过拖拽的方式快 ...
- 07_读写文件open(filename, mode, encoding=None)
读写文件open(filename, mode, encoding=None) mode mode 权限 r 只读 w 只写(会从头开始覆盖覆盖写当前文件内容) a 追加写(从文件内容的末尾追加写内容 ...
- layui 点击链接复制内容到剪切板
var tableObj = table.render({ id: 'list_table', elem: '#list_table', url: '', align: "center&qu ...
- 2022美亚杯个人赛wp(纯文字思路)
2022美亚杯个人赛wp(纯文字思路) vc镜像密码CZDGm#&2_Ns$7wSMn%ZGr7xntcHS7d5uFta#Up9544jx_cvP$uFM7?pTDa*jN&QyFD ...
- Vue3-DeepSeek-Chat流式AI对话|vite6+vant4+deepseek智能ai聊天助手
原创新作vue3.5+deepseek+vant4+vant4仿DeepSeek-R1流式输出ai聊天对话. deepseek-vue3-chat : 实战2025智能大模型ai会话,基于Vue3+V ...
- 解决Dcat Admin laravel框架登录报错问题,(blocked:mixed-content)
前言 在使用 Dcat Admin 后台登录时,发生 error 报错:(blocked:mixed-content) xhr VM484:1,浏览器拦截 其实这是浏览器在 HTTPS 页面中尝试加载 ...
- coco数据集详解
什么是COCO数据集? MS COCO的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集,与ImageN ...
- MFC下北京时间与时间戳相互转换
//时间戳转北京时间字串 CString getLocalDate(__int64 timestamp) { timestamp += 28800;//GTM偏移8个时区得到北京时间 tm p; gm ...
- HarmonyOS NEXT 基于原生能力获取视频缩略图
大家好,我是 V 哥. 不得不佩服 HarmonyOS NEXT 原生能力的强大,如果你想在 鸿蒙 APP 开发中获取视频缩略图,不用依赖第三方库,就可以高效和稳定的实现,AVMetadataHelp ...