前言:使用外部postgresql时需要先启动服务
一、docker compose文件
vi sonar.yml加入以下内容
services:
sonarqube:
image: sonarqube:9.9.7-community
restart: always
read_only: true
environment:
TZ: 'Asia/Shanghai'
SONAR_JDBC_URL: jdbc:postgresql://192.168.31.167:5432/sonar
SONAR_JDBC_USERNAME: root
SONAR_JDBC_PASSWORD: 123456
volumes:
- /srv/sonarqube/conf:/opt/sonarqube/conf
- /srv/sonarqube/data:/opt/sonarqube/data
- /srv/sonarqube/extensions:/opt/sonarqube/extensions
- /srv/sonarqube/logs:/opt/sonarqube/logs
- /srv/sonarqube/temp:/opt/sonarqube/temp
ports:
- "9000:9000"
networks:
- sonar-n
deploy:
resources:
limits:
cpus: '0.5'
memory: 1024m
networks:
sonar-n:
driver: bridge
2. 创建对应文件夹并给权限
mkdir /srv/sonarqube/conf \
/srv/sonarqube/data \
/srv/sonarqube/extensions \
/srv/sonarqube/logs \
/srv/sonarqube/temp
chmod -R 777 /srv/sonarqube/
- 设置最大虚拟内存映射区域数(不设置会导致内置的es启动失败)
# 临时
sudo sysctl -w vm.max_map_count=262144
# 永久
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sudo sysctl -p
4. 启动容器 docker compose -f ./sonar.yml up -d
5. 默认用户名密码 admin admin,postgresql会生成一个sonar数据库,不需要执行脚本。
至此单机的sonarqube部署完毕。