1

一、需求

在我们开发的过程中,难免有时候代码写的不规范,或存在一些静态的bug问题,这个时候一个良好的代码检查工具就很有必要,而sonarqube正好可以满足整个要求。

二、 docker-compose 文件的编写

version: "3"

services:
  sonarqube:
    image: sonarqube:8.3.1-community
    container_name: sonarqube
    restart: 'no'
    networks:
      - sonarnet
    environment:
      - sonar.jdbc.username=sonar
      - sonar.jdbc.password=sonar
      - sonar.jdbc.url=jdbc:postgresql://sonarqube-postgre:5432/sonarqube
      - sonar.search.javaOpts=-Xms256m -Xmx256m
    ports:
      - "9010:9000"
      - "9011:9092"
    depends_on:
      - sonarqube-postgre
    links:
      - sonarqube-postgre
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins

  sonarqube-postgre:
    image: postgres:12.3
    container_name: sonarqube-postgre
    restart: 'no'
    networks:
        - sonarnet
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
      - POSTGRES_DB=sonarqube
    volumes:
      - sonarqube_postgre_db:/var/lib/postgresql
      - sonarqube_postgre_data:/var/lib/postgresql/data

volumes:
  sonarqube_bundled-plugins:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_postgre_db:
  sonarqube_postgre_data:

networks:
  sonarnet:
    driver: bridge

三、运行

docker-compose -f 文件路径 up

四、注意事项

  1. sonarqube 的镜像数据挂载,最好使用数据卷volume
  2. 在多个 sonarqube 实例 中不可使用相同的数据卷。
  3. 每个 sonarqube 实例 最好自己的单独数据库schema
  4. eslinux环境下运行需要注意的必要环境,可以看 下方的参考链接,[sonarqube镜像]
  5. 当宿主机的内存比较小的时候,在镜像文件中需要增加 sonar.search.javaOpts=-Xms256m -Xmx256m参数,否则可能会出现 [SonarQube Process exited with exit value [es]: 137](https://stackoverflow.com/que... 问题。

五、参考链接

sonarqube镜像 https://hub.docker.com/_/sona...
sonarqube官网 https://docs.sonarqube.org/la...


huan1993
201 声望29 粉丝

java工程师