创建目录

mkdir -p /usr/local/src/sonarqube/conf
mkdir -p /usr/local/src/sonarqube/extensions
mkdir -p /usr/local/src/sonarqube/logs
mkdir -p /usr/local/src/sonarqube/data

赋予目录权限

cd /usr/local/src/sonarqube
chown -R 999:999 .

否则会出现如下错误

Unable to locate appender "file_es" for logger config "root"

参考:https://mlog.club/article/3945654

设置系统参数

临时生效

sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096

ulimit 永久生效

编辑 /etc/security/limits.conf 加入如下配置

# * 代表所有用户,可以针对某个用户配置 如:root soft notfile 65536
* soft nofile 65536
* hard nofile 65536

* soft nproc 65565
* hard nproc 65565

参考:https://github.com/iwhile/blogbook/issues/28

sysctl 永久生效

编辑 /etc/sysctl.conf 加入如下配置

vm.max_map_count=262144
fs.file-max=65536

加载 /etc/sysctl.conf配置

sysctl -p

重启系统

如果采用永久配置,保险起见,重启系统

创建 docker-compose.yml 文件

/usr/local/src/sonarqube目录下创建

version: '3'
services:
  sonarqube:
    image: sonarqube:7.9.2-community
    restart: always
    container_name: sonarqube
    ports:
      - 9000:9000
    environment:
      "sonar.jdbc.username": postgres
      "sonar.dbc.password": admin123
      "sonar.jdbc.url": jdbc:postgresql://postgres:5432/sonarqube
    volumes:
      - $PWD/conf:/opt/sonarqube/conf
      - $PWD/extensions:/opt/sonarqube/extensions
      - $PWD/logs:/opt/sonarqube/logs
      - $PWD/data:/opt/sonarqube/data

启动

docker-compse up -d

参考

Docker Hub SonarQube

写的不好,仅供参考