欢迎访问Sonar Source中文网站!
语言选择: ∷ 

如何从 Docker 镜像安装 SonarQube

发布时间:2024-03-14浏览次数:16

SonarQube docker 镜像支持在amd64架构和arm64基于 Apple Silicon 上运行。

我们建议使用Docker Engine 20.10 及更高版本。

请按照以下步骤进行首次安装:

创建卷来保存数据

创建以下卷有助于防止更新到新版本或升级到更高版本时丢失信息:

    • sonarqube_data:包含数据文件,例如Elasticsearch索引。

    • sonarqube_logs:包含有关访问、Web 进程、CE 进程和 Elasticsearch 的 SonarQube 日志。

    • sonarqube_extensions:将包含您安装的所有插件以及 Oracle JDBC 驱动程序(如果需要)。

使用以下命令创建卷: 

$> docker volume create --name sonarqube_data$> docker volume create --name sonarqube_logs$> docker volume create --name sonarqube_extensions

确保您使用的  是上述命令所示的 卷,而不是绑定安装使用绑定安装会阻止插件正确填充。

添加 JDBC 驱动程序(如果使用 Oracle 数据库)

已提供支持的数据库(Oracle 除外)的驱动程序。如果您使用的是 Oracle 数据库,则需要将 JDBC 驱动程序添加到卷 sonar_extensions 。去做这个:

 A。启动带有嵌入式 H2 数据库的 SonarQube 容器:

$ docker run --rm \
    -p 9000:9000 \
    -v sonarqube_extensions:/opt/sonarqube/extensions \
    <image_name>

b. SonarQube 正确启动后退出。

C。将 Oracle JDBC 驱动程序复制到 sonarqube_extensions/jdbc-driver/oracle.

启动 SonarQube 容器

启动 SonarQube 容器:

  • 从命令行(docker run)或 

  • 来自配置文件(docker compose)。 

对于基于 docker 的设置,环境变量会取代随属性提供的所有参数。有关更多详细信息,请参阅 Docker 环境变量。

有关在 Docker 卷中安装和更新 SonarQube 插件的更多信息,请参阅安装插件页面。

使用 docker run 启动容器

使用环境变量标志定义的数据库属性运行图像-e

$> docker run -d --name sonarqube \
    -p 9000:9000 \
    -e SONAR_JDBC_URL=... \
    -e SONAR_JDBC_USERNAME=... \
    -e SONAR_JDBC_PASSWORD=... \
    -v sonarqube_data:/opt/sonarqube/data \
    -v sonarqube_extensions:/opt/sonarqube/extensions \
    -v sonarqube_logs:/opt/sonarqube/logs \
    <image_name>

使用 Docker compose 启动容器

除非您打算在运行映像时删除数据库并重新开始,否则请注意不要使用-vto和,在运行ordocker-compose down等命令时要小心无论您是否使用参数,您的数据库卷都不会在 SonarQube 初始启动和关闭之后持续存在。docker system prunedocker volume pruneexternal: true

如果您使用 Docker Compose,请在配置文件时使用以下示例作为参考 .yml 。单击下面的标题以展开文件 .yml 。

下面的示例将使用最新版本的 SonarQube Docker 映像。如果想使用SonarQube的LTS版本,您需要使用图像标签更新示例 sonarqube:lts-community 。

Docker Compose .yml 文件示例
version: "3"services:
  sonarqube:
    image: sonarqube:community
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
    ports:
      - "9000:9000"
  db:
    image: postgres:12
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/datavolumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  postgresql:
  postgresql_data。

原文



微信扫码微信扫码 关注我们

  • 24小时咨询热线180-210-69380

  • 移动电话180-210-69380

Copyright © 2022 All Rights Reserved. 地址:上海市浦东新区崮山路538号808 苏ICP123456 XML地图