centos下docker安装 sonar-scanner
时间: 2025-05-20 10:02:10 浏览: 12
### 在 CentOS 上通过 Docker 安装和配置 Sonar-Scanner
为了在 CentOS 系统上成功安装和配置 Sonar-Scanner,可以按照以下方式操作:
#### 一、准备环境
确保 CentOS 已经正确安装并运行 Docker。如果尚未安装 Docker,则可以通过以下命令完成安装:
```bash
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
```
确认 Docker 是否正常工作,可执行 `docker version` 或者尝试拉取一个简单的镜像来测试。
---
#### 二、调整系统参数
由于某些情况下内存映射文件数量不足可能导致容器无法启动,因此需要修改系统的最大内存映射数设置[^4]。
```bash
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
```
此步骤非常重要,尤其是在高负载环境下运行 SonarQube 的时候。
---
#### 三、部署 MySQL 数据库服务
SonarQube 推荐使用外部数据库支持其数据存储功能。以下是基于 Docker 部署 MySQL 的方法:
```bash
docker run --name sonar-mysql \
-e MYSQL_ROOT_PASSWORD=root_password \
-e MYSQL_DATABASE=sonarqube_db \
-p 3306:3306 \
-d mysql:5.7
```
上述命令会创建名为 `sonar-mysql` 的容器实例,并初始化根密码为 `root_password` 及默认数据库名称为 `sonarqube_db`[^1]。
注意:实际生产环境中应替换掉敏感信息(如密码),并且考虑更安全的方式管理这些凭证。
---
#### 四、启动 SonarQube 实例
接着,在同一网络下启动 SonarQube 并连接到之前建立好的 MySQL 数据源:
```bash
docker run --name sonarqube \
-e SONARQUBE_JDBC_USERNAME=mysql_user \
-e SONARQUBE_JDBC_PASSWORD=mysql_password \
-e SONARQUBE_JDBC_URL=jdbc:mysql://<mysql-container-ip>:3306/sonarqube_db?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true \
-p 9000:9000 \
--link sonar-mysql:mysql \
-d sonarsource/sonarqube:latest
```
这里的关键在于正确指定 JDBC URL 地址指向对应的 MySQL 主机地址。
等待一段时间直到 SonarQube 成功启动完毕,默认访问路径为 http://localhost:9000 ,登录账户 admin/admin 登陆初始界面。
---
#### 五、安装与配置 Sonar-Scanner
对于本地项目分析需求来说,还需要单独引入 Sonar-Scanner 组件。一种简便的方法是从官方仓库获取最新稳定版压缩包[^2]:
```bash
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
unzip sonar-scanner-cli-*.zip && mv sonar-scanner-* /opt/sonar-scanner/
ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/local/bin/sonar-scanner
```
编辑全局工具配置文件 `/opt/sonar-scanner/conf/sonar-scanner.properties` 添加如下内容[^3]:
```properties
sonar.host.url=http://<your_sonar_server_ip>:9000
sonar.login=<generated_token>
```
其中 `<your_sonar_server_ip>` 替换为目标服务器 IP;而 token 则需前往 Web UI 中生成个人令牌用于身份验证。
最后验证 scanner 功能是否可用:
```bash
sonar-scanner -v
```
---
#### 六、自动化集成 GitLab CI (可选扩展)
如果有进一步的需求希望将静态代码检测融入持续交付流程当中,那么还可以参考另一篇文档说明如何结合 GitLab Runner 来达成目标[^5]。
---
阅读全文
相关推荐













