如何在Docker容器中配置SonarQube?

时间:2017-05-29 14:38:22

标签: docker sonarqube

我想(un)安装一些SonarQube插件并在Docker容器中加载质量配置文件xml文件。

到目前为止我的方法是这个(我的Dockerfile的一部分):

RUN set -x \
    && apk add --no-cache unzip curl \
    && curl --tlsv1 -o sonarqube.zip -fSL https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.3.1.zip \
    && unzip sonarqube.zip \
    && mv sonarqube-6.3.1 /opt/sonarqube \
RUN java -jar /opt/sonarqube/lib/sonar-application-6.3.1.jar &
RUN curl -X POST -u admin:admin http://localhost:9000/api/plugins/uninstall?key=csharp 

ENTRYPOINT java -jar /opt/sonarqube/lib/sonar-application-6.3.1.jar

我试图在一个单独的过程中启动SonarQube,如您所见:

java -jar /opt/sonarqube/lib/sonar-application-6.3.1.jar

但是下一个命令curl -X POST ...失败了,可能是因为此时声纳服务器还没有启动并运行:

The command '/bin/sh -c curl -X POST -u admin:admin http://localhost:9000/api/plugins/uninstall?key=csharp' returned a non-zero code: 7

但是,如果我没有为SonarQube启动新流程(在行末删除&),则docker build会一直挂着告诉我SonarQube已启动。

如何在Dockerfile中配置SonarQube?在配置结束时阻止它的最佳方法是什么(避免与入口点发生冲突)?

1 个答案:

答案 0 :(得分:0)

非常全面的文档在这里:Docker - sonarqube 高级配置部分中特别提到了最佳做法。

当您需要其他插件时,最佳实践是挂载插件所在的专用目录。在更新任何pulugin时,这可以节省对docker映像的维护。

还有一个提示,您可以外部化配置目录,这将有助于您管理配置。