如何在Sonarqube Docker映像中跨容器调用持久化配置和分析

Sonarqube官方docker映像不保留任何配置更改,例如:creating users, changing root password or

even installing new plugins

重新启动容器后,所有配置更改都会消失,并且已安装的插件也会丢失。重新启动后,甚至项目的键及其先前的质量检查分析数据也将不可用。

当使用Sonarqube的官方docker镜像时,我们如何保存数据?

回答:

  • Sonarqube映像带有一个临时的h2数据库引擎,不建议将其用于生产环境,并且在容器重启后不会持续存在。
  • 我们需要建立我们自己的数据库,并在启动容器时将其指向Sonarqube。
  • "$SONARQUBE_HOME/data", "$SONARQUBE_HOME/extensions"从Sonarqube Dockerfile看,Sonarqube泊坞窗映像公开了两个卷。

由于我们想在调用之间保留数据,因此我们需要确保已建立生产级数据库并将其链接到Sonarqube,并且已将扩展目录创建并作为卷安装在主机上,以便所有下载的插件在容器调用,可以被多个容器使用(如果需要)。

数据库设置:

create database sonar;

grant all on sonar.* to `sonar`@`%` identified by "SOME_PASSWORD";

flush privileges;

# since we do not know the containers IP before hand, we use '%' for sonarqube host IP.

,如果Sonarqube找不到 ,则可以创建它们。

启动Sonarqube容器:

# create a directory on host

mkdir /server_data/sonarqube/extensions

mkdir /server_data/sonarqube/data # this will be useful in saving startup time

# Start the container

docker run -d \

--name sonarqube \

-p 9000:9000 \

-e SONARQUBE_JDBC_USERNAME=sonar \

-e SONARQUBE_JDBC_PASSWORD=SOME_PASSWORD \

-e SONARQUBE_JDBC_URL="jdbc:mysql://HOST_IP_OF_DB_SERVER:PORT/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance" \

-v /server_data/sonarqube/data:/opt/sonarqube/data \

-v /server_data/sonarqube/extensions:/opt/sonarqube/extensions \

sonarqube

以上是 如何在Sonarqube Docker映像中跨容器调用持久化配置和分析 的全部内容, 来源链接: utcz.com/qa/411783.html

回到顶部