diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c233e1abe0775a357c01d03e899eaf3521bd0ea7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+scripts/Dockerfile
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 8262459655cf19158740844654b4c653494819dc..7764d3aae766a7c8cce5f6e1085361935c7da378 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-ARG BASE_REGISTRY=nexus-docker-secure.levelup-dev.io
+ARG BASE_REGISTRY=registry1.dsop.io
ARG BASE_IMAGE=redhat/openjdk/openjdk11
ARG BASE_TAG=1.11
@@ -8,11 +8,11 @@ FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG}
LABEL org.opencontainers.image.title="SonarQube" \
org.opencontainers.image.description="SonarQube is an automatic code review tool to detect bugs, vulnerabilities and code smells in your code." \
- org.opencontainers.image.licenses="LGPL-3.0-only" \
+ org.opencontainers.image.licenses="All rights reserved" \
org.opencontainers.image.version="8.4-enterprise" \
maintainer="SonarSource"
-ARG SONARQUBE_VERSION=8.4.2.36762
+ARG SONARQUBE_VERSION=8.4.2-enterprise
ENV SONAR_VERSION="${SONARQUBE_VERSION}" \
SONARQUBE_HOME="/opt/sonarqube" \
SQ_DATA_DIR="/opt/sonarqube/data" \
@@ -33,12 +33,15 @@ RUN set -ex \
COPY --chown=sonarqube:sonarqube --from=build ${SONARQUBE_HOME} ${SONARQUBE_HOME}
COPY --chown=sonarqube:sonarqube scripts/*.sh ${SONARQUBE_HOME}/bin/
+COPY scripts/docker-healthcheck /usr/local/bin/
+
+RUN ln -s ${SONARQUBE_HOME}/lib/sonar-application-*.jar ${SONARQUBE_HOME}/lib/sonar-application-${SONAR_VERSION}.jar
USER sonarqube
WORKDIR ${SONARQUBE_HOME}
EXPOSE 9000
-HEALTHCHECK --start-period=180s CMD curl -f 127.0.0.1:9000
+HEALTHCHECK CMD ["docker-healthcheck"]
ENTRYPOINT ["bin/run.sh"]
CMD ["bin/sonar.sh"]
diff --git a/Kptfile b/Kptfile
new file mode 100644
index 0000000000000000000000000000000000000000..baeff451c4c808fbd3b3b15237d98041edd617df
--- /dev/null
+++ b/Kptfile
@@ -0,0 +1,13 @@
+apiVersion: kpt.dev/v1alpha1
+kind: Kptfile
+metadata:
+ name: sonarqube-scripts
+packageMetadata:
+ shortDescription: sample description
+dependencies:
+ - name: ./scripts
+ git:
+ repo: https://github.com/SonarSource/docker-sonarqube
+ directory: /8/enterprise
+ ref: 8.4.1
+ updateStrategy: resource-merge
diff --git a/LICENSE b/LICENSE
index 65c5ca88a67c30becee01c5a8816d964b03862f9..8fdc759b730ed9760f59750c360011dac70fe73a 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,165 +1,3 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
+Copyright (C) ${inceptionYear}-2020 SonarSource SA
+All rights reserved
+mailto:info AT sonarsource DOT com
\ No newline at end of file
diff --git a/renovate.json b/renovate.json
index 035ac93bc4c5e10dff57e580b813235b9bd1f31c..69654f76ae367afa1ff6cda71dd11845211b4d5f 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,6 +1,10 @@
{
"assignees": ["@sean.melissari"],
"baseBranches": ["development"],
+ "postUpgradeTasks": {
+ "commands": ["kpt pkg sync ."],
+ "fileFilters": ["scripts/*"]
+ },
"regexManagers": [
{
"fileMatch": ["^Dockerfile$"],
@@ -8,7 +12,17 @@
"version=\"(?.*?)\""
],
"depNameTemplate": "sonarqube",
- "datasourceTemplate": "docker"
+ "datasourceTemplate": "docker",
+ "versioningTemplate": "docker"
+ },
+ {
+ "fileMatch": ["^Dockerfile$"],
+ "matchStrings": [
+ "SONARQUBE_VERSION=\"(?.*?)\""
+ ],
+ "depNameTemplate": "sonarqube",
+ "datasourceTemplate": "docker",
+ "versioningTemplate": "docker"
},
{
"fileMatch": ["^Jenkinsfile$"],
@@ -16,7 +30,17 @@
"version:\\s+\"(?.*?)\""
],
"depNameTemplate": "sonarqube",
- "datasourceTemplate": "docker"
+ "datasourceTemplate": "docker",
+ "versioningTemplate": "docker"
+ },
+ {
+ "fileMatch": ["^Kptfile$"],
+ "matchStrings": [
+ "\\s+ref:\\s+(?.*?)\n"
+ ],
+ "depNameTemplate": "SonarSource/docker-sonarqube",
+ "datasourceTemplate": "github-tags",
+ "versioningTemplate": "loose"
}
]
}
diff --git a/scripts/Kptfile b/scripts/Kptfile
new file mode 100644
index 0000000000000000000000000000000000000000..a1acc961a3ad2c7c124e3f1a2e572e6f3c93955e
--- /dev/null
+++ b/scripts/Kptfile
@@ -0,0 +1,20 @@
+apiVersion: kpt.dev/v1alpha1
+kind: Kptfile
+metadata:
+ name: sonarqube-scripts
+upstream:
+ type: git
+ git:
+ commit: fea13bf2bcabb72685f411c3e4bc4f18af789b20
+ repo: https://github.com/SonarSource/docker-sonarqube
+ directory: /8/enterprise
+ ref: 8.4.1
+packageMetadata:
+ shortDescription: sample description
+dependencies:
+ - name: ./scripts
+ git:
+ repo: https://github.com/SonarSource/docker-sonarqube
+ directory: /8/enterprise
+ ref: 8.4.1
+ updateStrategy: resource-merge
diff --git a/scripts/docker-healthcheck b/scripts/docker-healthcheck
new file mode 100755
index 0000000000000000000000000000000000000000..0b1386bacadff468b6ae5a87421ecf924c8ea776
--- /dev/null
+++ b/scripts/docker-healthcheck
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# A Sonarqube container is considered healthy if the status is UP, DB_MIGRATION_NEEDED or DB_MIGRATION_RUNNING
+# status about migration are added to prevent the node to be kill while sonarqube is updating himself.
+host="$(cat /etc/hostname || echo '127.0.0.1')"
+
+if curl -Ss http://${host}:9000/api/system/status | grep -q -e '"status":"UP"' -e '"status":"DB_MIGRATION_NEEDED"' -e '"status":"DB_MIGRATION_RUNNING"'; then
+ exit 0
+fi
+
+exit 1