我想(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?在配置结束时阻止它的最佳方法是什么(避免与入口点发生冲突)?
答案 0 :(得分:0)
非常全面的文档在这里:Docker - sonarqube 高级配置部分中特别提到了最佳做法。
当您需要其他插件时,最佳实践是挂载插件所在的专用目录。在更新任何pulugin时,这可以节省对docker映像的维护。
还有一个提示,您可以外部化配置目录,这将有助于您管理配置。