SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,本文简要说明如何将基于docker安装的SonarQubeLDAP集成实现快捷登录。

  1. 创建一个名为sonarqube的文件夹,在其下建立一个名为docker-compose.yml的文件,输入如下内容

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    version: '3'
    services:
      postgres:
        image: postgres:14.4
        restart: always
        privileged: true
        container_name: postgres
        ports:
          - 5432:5432
        volumes:
          - $PWD/postgres/postgres-data:/var/lib/postgresql/data
        environment:
          TZ: Asia/Shanghai
          POSTGRES_USER: sonar
          POSTGRES_PASSWORD: sonar123
          POSTGRES_DB: sonar
        networks:
          - sonar-network
      sonar:
        image: sonarqube:8.9-community
        restart: always
        container_name: sonar
        depends_on:
          - postgres
        volumes:
          - $PWD/sonarqube/extensions:/opt/sonarqube/extensions
          - $PWD/sonarqube/logs:/opt/sonarqube/logs
          - $PWD/sonarqube/data:/opt/sonarqube/data
          - $PWD/sonarqube/conf:/opt/sonarqube/conf
        ports:
          - 9990:9000
        environment:
          SONARQUBE_JDBC_USERNAME: sonar
          SONARQUBE_JDBC_PASSWORD: sonar123
          SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
        networks:
          - sonar-network
    networks:
      sonar-network:
        driver: bridge
    
  2. 输入docker-compose up -d启动容器,等待2-3分钟后利用docker logs sonar查看其日志,若日志中出现类似如下信息,则表示SonarQube初步安装成功

    sonarqube启动成功

  3. 输入http://ip:9990可打开如下图所示的登录界面,默认的账号和密码均为admin,可用此账号登录

    sonarqube登录页面

  4. $PWD/sonarqube/conf目录下建立一个名为sonar.properties的文件,写入类似如下内容

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    #LDAP settings
    #admin
    sonar.security.realm=LDAP
    ldap.url=ldap://10.10.xxx.xxx:389
    ldap.bindDn=cn=xxx,dc=xxx,dc=com
    ldap.bindPassword=xxx
    
    ldap.user.baseDn=dc=xxx,dc=com
    ldap.user.request=(&(objectClass=inetOrgPerson)(uid={login}))
    ldap.user.realNameAttribute=displayName
    ldap.user.emailAttribute=mail
    
  5. 输入docker-compose restart重启之后即可采用LDAP账户登录!