2016-04-02 6 views
5

カスタムSonarQubeドッカーイメージを作成します。プラグインは既にインストールされていますが、コンテナを実行するたびにプラグインはありません。それは何かのように/opt/sonarqube/extensions/pluginsからプラグインを削除し、そこにbundled-pluginsをコピーします。SonarQubeプラグインをDockerイメージに手動でインストールする

マイ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を削除しようとしました。

アイデア?

答えて

10

Sonarqube画像は/extensions/ディレクトリにボリュームを使用します。その結果、そのディレクトリ内のファイルはイメージのファイルシステムに保存されません。 Dockerfile

があなたのイメージにこれらの拡張子をパッケージ化するにはを参照してください、あなたは彼らにそのディレクトリの外を必要とし、エントリポイントスクリプトで/extensions/にそれらのファイルをコピーするか、または別の画像であなたのプラグインを格納し、それらのプラグインを実装しますイメージを実行しているときのボリュームとして。ここでその例を見つけることができます。 https://github.com/SonarSource/docker-sonarqube/blob/master/recipes.md

+0

。ありがとうございました! Btwは、jarファイルがGithubのリリースとして公開されることを尋ねるのに最適な場所はどこですか?たとえば、リリースのセクションでこのプラグインのjarファイルhttps://github.com/SonarSource/sonar-auth-github/releasesをダウンロードできますが、新しいリリースではダウンロードできません。私が見たプラグインのほとんどで同じことが起こっています。 – fiunchinho

+0

そのリポジトリのissueトラッカー(および他のプラグイン)にあることを尋ねるのに最適な場所です。 – thaJeztah

+0

既存の機能要求が既に存在しないかどうかを確認します。問題が有効になっていません。/ – fiunchinho

4

受諾された回答はもはや真実ではありません。あなたが最近の親sonarqubeイメージを直接使用する場合、それはうまくいくはずです。 Dockerfileが質問に答えられない場合は、別の問題があります。

詳細については、コミット80366e3419d698b4bba4447f153418ef64b3b705を参照してください。

「CONF」、「ログ」の削除ボリュームと「拡張子」ディレクトリボリュームの 明示的な宣言が唯一 アプリケーションによって保存されたデータに適した、設定可能なもののためにボリュームが適切な なることはほとんどありません(ドッカ-ライブラリを参照してください/公式画像#2437)。

これはコミット69fca2eを戻します。さらに、 "extensions"ディレクトリのボリュームを と削除します。

0

はSonarQube 5.6前に、プラグインは、ボリュームに格納されているので、適切なコマンド(sonarqube容器を開始した後)である。この問題を解決

wget https://sonarsource.bintray.com/Distribution/sonar-auth-github-plugin/sonar-auth-github-plugin-1.2.jar -P `docker inspect -f '{{ (index .Mounts 1).Source }}' sonarqube`/plugins 
docker restart sonarqube 
関連する問題