我对 Docker 很陌生。现在我想运行一个 docker 版本的 Sonarqube 并更新属性文件(sonar.properties),以便将我的数据库指向 mysql 而不是默认的 H2。
我能够使用默认配置运行图像,甚至对其进行扫描。虽然按照其官方 docker 页面 (Sonarqube docker documentation) 中的说明进行操作,但我无法从“首次安装”标题下的第二点继续进行。第二点如下
Initialize SONARQUBE_HOME folder tree with --init. This will initialize the default configuration, copy embedded plugins, and prepare the data folder:
$ docker run --rm \
-v $SONARQUBE_HOME/conf:/opt/sonarqube/conf \
-v $SONARQUBE_HOME/extensions:/opt/sonarqube/extensions \
-v $SONARQUBE_HOME/data:/opt/sonarqube/data \
sonarqube --init
我相信这将帮助我拥有一个自定义配置文件夹。运行此命令时出现以下错误。
renju@renju-pc:~$ sudo docker run --rm -v $SONARQUBE_HOME/conf:/opt/sonarqube/conf -v $SONARQUBE_HOME/extensions:/opt/sonarqube/extensions -v $SONARQUBE_HOME/data:/opt/sonarqube/data sonarqube --init tail: cannot open './logs/es.log' for reading: No such file or directory 01:33:11.950 [main] WARN org.sonar.application.config.AppSettingsLoaderImpl - Configuration file not found: /opt/sonarqube/conf/sonar.properties Exception in thread "main" java.lang.IllegalArgumentException: Command-line argument must start with -D, for example -Dsonar.jdbc.username=sonar. Got: --init at org.sonar.application.config.CommandLineParser.argumentsToProperties(CommandLineParser.java:56) at org.sonar.application.config.CommandLineParser.parseArguments(CommandLineParser.java:37) at org.sonar.application.config.AppSettingsLoaderImpl.load(AppSettingsLoaderImpl.java:66) at org.sonar.application.App.start(App.java:51) at org.sonar.application.App.main(App.java:98)
我的假设是这是因为文件夹“opt/sonarqube/conf”不可用。
为什么那个文件夹不见了?根据文档,
Use bind-mounted folders
The images contain the SonarQube installation at /opt/sonarqube. You need to use bind-mounted folders to override selected files or directories :
/opt/sonarqube/conf: configuration files, such as sonar.properties
/opt/sonarqube/data: data files, such as the embedded H2 database and Elasticsearch indexes
/opt/sonarqube/logs: contains SonarQube logs about access, web process, CE process, Elasticsearch logs
/opt/sonarqube/extensions: plugins, such as language analyzers
我在这里错过任何中间步骤吗?
我在 Ubuntu 19.10 上工作。
最佳答案
你没有错过任何东西。
Docker Hub 中的当前文档适用于 Sonarqube 8。他们正在努力发布 Sonarqube7 的文档。
请查看以下链接:https://github.com/SonarSource/docker-sonarqube/issues/340#issuecomment-553397995
请按照以下步骤操作。
$ docker 运行--rm\
-p 9000:9000\
-v sonarqube_conf:/opt/sonarqube/conf\
-v sonarqube_extensions:/opt/sonarqube/extensions\
-v sonarqube_logs:/opt/sonarqube/logs\
-v sonarqube_data:/opt/sonarqube/数据\
%%图像%%
$ docker run -d --name sonarqube\
-p 9000:9000\
-e sonar.jdbc.username= Sonar\
-e sonar.jdbc.password= Sonar\
-v sonarqube_conf:/opt/sonarqube/conf\
-v sonarqube_extensions:/opt/sonarqube/extensions\
-v sonarqube_logs:/opt/sonarqube/logs\
-v sonarqube_data:/opt/sonarqube/数据\
%%图像%%
关于docker - 如何更新基于 docker 的安装的 soanr.properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58849111/