- 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 hostmkdir /server_data/sonarqube/extensionsmkdir /server_data/sonarqube/data # this will be useful in saving startup time# Start the containerdocker 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?useUnipre=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance" -v /server_data/sonarqube/data:/opt/sonarqube/data -v /server_data/sonarqube/extensions:/opt/sonarqube/extensions sonarqube



