Docker部署SonarQube

本文介绍如何使用Docker Compose配置SonarQube和PostgreSQL服务。通过提供的docker-compose.yml文件,可以轻松地启动和运行这些服务。文章还提到了与二进制包安装过程相似的后续步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖

  • CentOS 7.2+
  • docker 1.13+
  • docker-compose 1.20+

将下面文件内容另存为docker-compose.yml文件,执行docker-compose up -d进行启动服务

version: "2"

services:
  sonarqube:
    image: sonarqube
    ports:
      - "80:9000"
    networks:
      - sonarnet
    environment:
      - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins

  db:
    image: postgres
    networks:
      - sonarnet
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

networks:
  sonarnet:
    driver: bridge

volumes:
  sonarqube_conf:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_bundled-plugins:
  postgresql:
  postgresql_data:

之后的过程和二进制包安装无任何区别

转载于:https://www.cnblogs.com/tchroot/p/8683737.html

### 使用Docker部署SonarQube #### 准备工作 为了确保顺利部署SonarQube,需确认已安装Docker。如果尚未安装,请前往[Docker官网](https://www.docker.com/)下载适合操作系统的版本并完成安装过程[^3]。 #### 调整系统参数 对于某些操作系统(如CentOS),可能需要调整内核参数来满足Elasticsearch的要求,因为默认情况下这些设置不足以支持生产模式下的正常运作。具体来说: - 设置最大内存映射数 `sysctl -w vm.max_map_count=524288` - 增加文件句柄的最大数量 `sysctl -w fs.file-max=131072` 和每进程打开文件的数量限制 `ulimit -n 131072` - 提升用户进程数目上限 `ulimit -u 8192` 以上命令可以在终端中逐条输入执行,或者编辑相应的配置文件使更改永久生效[^5]。 #### 获取SonarQube镜像 利用Docker Hub上的官方仓库获取最新的SonarQube镜像: ```bash docker pull sonarqube:latest ``` 这一步会从互联网下载最新版的SonarQube镜像至本地机器上,供后续创建容器时使用[^1]。 #### 启动SonarQube容器 一旦获得了所需的镜像,就可以通过下面这条指令启动一个新的SonarQube实例: ```bash docker run -d --name sonarqube -p 9000:9000 sonarqube:latest ``` 这里定义了一个名为sonarqube的服务,并将其内部监听端口9000映射到了主机相同的端口号上,使得外部可以直接访问该应用界面。 #### 进阶配置——持久化存储与网络优化 考虑到数据安全性和性能因素,在实际环境中通常建议采用挂载卷的方式保存数据库和其他重要资料;另外也可以考虑构建自定义网络以增强不同服务间的通信效率。例如: ```bash docker volume create sonarqube_data docker network create sonarnet docker run -d \ --name sonarqube \ -v sonarqube_data:/opt/sonarqube/data \ --network sonarnet \ -p 9000:9000 \ sonarqube:latest ``` 此脚本不仅实现了上述提到的功能改进,还进一步增强了整体解决方案的灵活性和可靠性[^2]。 #### 自动化集成示例 当希望将SonarQube融入CI/CD流水线时,比如结合Jenkins来进行持续集成,则可以通过编写shell脚本来简化这一过程。以下是一个简单的例子,展示了如何调用SonarScanner插件对项目源码实施静态分析并将结果上传给远程服务器中的SonarQube实例[^4]: ```groovy pipeline { agent any stages { stage('Build') { ... } stage('Test') { ... } stage('Analyze with SonarQube'){ steps{ sh ''' mvn clean verify sonar:sonar \ -Dsonar.host.url=http://${SONAR_HOST} \ -Dsonar.login=${SONAR_TOKEN} ''' } } } post{...} } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值