captainVersion: 4
services:
    $$cap_appname-db:
        image: postgres:$$cap_postgres_version
        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
        caproverExtra:
            notExposeAsWebApp: 'true'
    $$cap_appname:
        image: sonarqube:$$cap_sonar_version
        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
        caproverExtra:
            containerHttpPort: '9000'
caproverOneClickApp:
    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,}/
    instructions:
        start: >-
            SonarQube is an open source product for continuous inspection of code quality. 
            This Docker image contains the Community Edition of SonarQube.

            Enter your SonarQube Configuration parameters and click on next. 

            More information about this container can be found here:
            https://hub.docker.com/_/sonarqube?tab=description

            Default username: admin
            Default password: admin

            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.
    displayName: ''
    isOfficial: true
    description: Catch bugs and vulnerabilities in your app, with thousands of automated Static Code Analysis rules
    documentation: Taken from https://hub.docker.com/_/sonarqube
