{
    "captainVersion": "2",
    "documentation": "Taken from https://hub.docker.com/_/sonarqube",
    "displayName": "",
    "description": "Catch bugs and vulnerabilities in your app, with thousands of automated Static Code Analysis rules",
    "isOfficial": true,
    "dockerCompose": {
        "version": "3.3",
        "services": {
            "$$cap_appname-db": {
                "image": "postgres:$$cap_postgres_version",
                "notExposeAsWebApp": "true",
                "volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
                "restart": "always",
                "environment": {
                    "POSTGRES_USER": "sonarqube",
                    "POSTGRES_PASSWORD": "$$cap_pg_pass",
                    "POSTGRES_DB": "sonarqube",
                    "POSTGRES_INITDB_ARGS": "$$cap_pg_initdb_args"
                }
            },
            "$$cap_appname": {
                "image": "sonarqube:$$cap_sonar_version",
                "containerHttpPort": "9000",
                "depends_on": ["$$cap_appname-db"],
                "volumes": [
                    "$$cap_appname-conf:/opt/sonarqube/conf",
                    "$$cap_appname-data:/opt/sonarqube/data",
                    "$$cap_appname-logs:/opt/sonarqube/logs",
                    "$$cap_appname-extensions:/opt/sonarqube/extensions"
                ],
                "restart": "always",
                "environment": {
                    "sonar.jdbc.username": "sonarqube",
                    "sonar.jdbc.password": "$$cap_pg_pass",
                    "sonar.jdbc.url": "jdbc:postgresql://srv-captain--$$cap_appname-db/sonarqube"
                }
            }
        }
    },
    "instructions": {
        "start": "SonarQube is an open source product for continuous inspection of code quality. \n This Docker image contains the Community Edition of SonarQube.\n\n Enter your Sonarqube Configuration parameters and click on next. \n\n More information about this container can be found here:\n https://hub.docker.com/_/sonarqube?tab=description\n\n Default username: admin\n Default password: admin\n\n It will take about a minute for the process to finish.",
        "end": "SonarQube is deployed and available as srv-captain--$$cap_appname:9000 to other apps."
    },
    "variables": [
        {
            "id": "$$cap_postgres_version",
            "label": "Postgres Version",
            "defaultValue": "9.6",
            "description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/postgres/tags/",
            "validRegex": "/^([^\\s^\\/])+$/"
        },
        {
            "id": "$$cap_sonar_version",
            "label": "Sonarqube Version",
            "defaultValue": "7.7-community",
            "description": "Check out their Docker page for the valid tags https://hub.docker.com/_/sonarqube?tab=tags/",
            "validRegex": "/^([^\\s^\\/])+$/"
        },
        {
            "id": "$$cap_pg_pass",
            "label": "Postgres Password",
            "description": "",
            "validRegex": "/.{1,}/"
        },
        {
            "id": "$$cap_pg_initdb_args",
            "label": "OPTIONAL: Arguments for 'postgres initdb'",
            "description": "For example, --data-checksums",
            "validRegex": "/.{0,}/"
        }
    ]
}
