Upgrading sonarqube via container and loosing all project information

Hi All.

Having done some research on deployment options for sonarqube which is strictly PaaS without the provisioning of any form of infrastructure to manage sonarqube.

I have done so using docker compose, azure storage account and Azure SQL server. The docker compose file can be found at the bottom of this post.

I noticed some few anomalies which I would like to clarify.

When I deployed this for the first time v9.9, I manually created some projects and then did an upgrade to v10. the purpose was to test if the project information will be lost or retained. After the redeployment, I lost the projects created when on v9.9 and had to reset the password again from the admin/admin combination. My question is, should this have been expected ?

My second observation is this. I have used configuration parameter in place of the image, i.e instead of using sonarqube:10.0-developer, I created a configuration item called ${SONAR_IMAGE} with value sonarqube:10.0-developer. When this is used within the docker compose file, the container does not get started and I get an application error. I am not sure what I am doing incorrectly here

Docker compose file.

version: '3.3'
   
services:
    sonarqube:
        # depends_on:
        #   - db
        image: sonarqube:10.0-developer
        command: "-Dsonar.search.javaAdditionalOpts=-Dnode.store.allow_mmap=false"
        ports:
         - "9000:9000"
        volumes:
          - sonarqube-conf:/opt/sonarqube/conf
          - sonarqube-data:/opt/sonarqube/data
          - sonarqube-extensions:/opt/sonarqube/extensions
          - sonarqube-bundled-plugins:/opt/sonarqube/lib/bundled-plugins
        environment:
          - SONARQUBE_JDBC_URL=jdbc:sqlserver://xxxxxx:1433;databaseName=${SONAR_JDBC_DATABASE};user=[${SONAR_JDBC_USERNAME}]@[xxxx];password=${SONAR_JDBC_PASSWORD};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
          - SONARQUBE_JDBC_USERNAME=${SONAR_JDBC_USERNAME}
          - SONARQUBE_JDBC_PASSWORD= ${SONAR_JDBC_PASSWORD}
          - SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true
   

volumes:
    sonarqube-conf:
        external: true        
    sonarqube-data:
        external: true
    sonarqube-extensions:
        external: true
    sonarqube-bundled-plugins:
        external: true

    mssql:

Maybe the database was part of the docker image, and upgrading the docker also replaced the database?

Alternatively, upgrading SonarQube might have reset the configuration back to internal “H2”-database…

The exact application error message might be needed for any diagnose…

1 Like