docker - 如何更新基于 docker 的安装的 soanr.properties

标签 docker ubuntu sonarqube

我对 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

请按照以下步骤操作。

  • 创建卷 sonarqube_conf、sonarqube_data、sonarqube_logs 和 sonarqube_extensions,并使用以下命令启动镜像。这将填充所有卷(复制默认插件、创建 Elasticsearch 数据文件夹、创建 sonar.properties 配置文件)。查看日志,一旦容器正确启动,您可以强制退出 (ctrl+c) 并继续下一步。

    $ 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/数据\
    %%图像%%
  • 使用您的 JDBC 用户名和密码运行镜像

    $ 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/

    相关文章:

    Ubuntu 16.04 上的 JavaFX 媒体播放器

    java - SonarQube 声明对于使用 "this."访问的字段始终评估为 false 的条件

    maven - hudson:maven-sonar-plugin 执行无法从服务器下载库

    docker - 如何使用 NGINX 入口 Controller 从 Cloudflare 恢复原始客户端 IP

    docker - 无法将 flask Web与容器中的Nginx连接

    从 "docker stats"流式传输时,Docker 容器 CPU 使用率有时会超过 100%

    amazon-web-services - 使用Mup部署和NGINX的 meteor 应用程序未出现在AWS上

    python - 没有命名模块(导入错误 Python 2.7)

    java - 为什么我的声音有延迟?

    unit-testing - 运行分析时,Intellij 中的 SonarQube 未获取单元测试分支覆盖率