我想创建自定义的SonarQube docker镜像,其中已经安装了一些插件,但是每次运行容器时,这些插件都不存在。就像从/opt/sonarqube/extensions/plugins
中删除了插件并在其中复制bundled-plugins
一样。
我的Dockerfile
FROM sonarqube
ENV SONARQUBE_HOME /opt/sonarqube
RUN wget "http://downloads.sonarsource.com/plugins/org/codehaus/sonar-plugins/sonar-scm-git-plugin/1.1/sonar-scm-git-plugin-1.1.jar" \
&& wget "https://github.com/SonarSource/sonar-java/releases/download/3.12-RC2/sonar-java-plugin-3.12-build4634.jar" \
&& wget "https://github.com/SonarSource/sonar-github/releases/download/1.1-M9/sonar-github-plugin-1.1-SNAPSHOT.jar" \
&& wget "https://github.com/SonarSource/sonar-auth-github/releases/download/1.0-RC1/sonar-auth-github-plugin-1.0-SNAPSHOT.jar" \
&& wget "https://github.com/QualInsight/qualinsight-plugins-sonarqube-badges/releases/download/qualinsight-plugins-sonarqube-badges-1.2.1/qualinsight-sonarqube-badges-1.2.1.jar" \
&& mv *.jar $SONARQUBE_HOME/extensions/plugins \
&& ls -lah $SONARQUBE_HOME/extensions/plugins
我尝试列出该文件夹,并且列出了所需的插件。但是,如果我在启动容器后列出了相同的文件夹,则它们将消失。
我也尝试过删除
bundled-plugins
,但没有运气。有任何想法吗?
最佳答案
Sonarqube镜像在/extensions/
目录中使用了一个卷,这导致该目录中的文件未存储在镜像的文件系统中。看到Dockerfile
要将这些扩展打包到镜像中,您需要它们不在该目录中,并将这些文件复制到入口点脚本中的/extensions/
中,或将插件存储在单独的镜像中,并在运行镜像时将这些插件作为卷挂载;您可以在此处找到执行此操作的示例; https://github.com/SonarSource/docker-sonarqube/blob/master/recipes.md
关于docker - 在Docker镜像上手动安装SonarQube插件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36376968/