安装 docker-compose

进入/usr/local/bin/
上传或者下载 docker-compose
chmod +x /usr/local/bin/docker-compose

1 创建目录

mkdir -p /dockerdata/sonarqube && cd /dockerdata/sonarqube

2 创建所有的映射文件

mkdir -p /dockerdata/sonarqube/postgres && \
mkdir -p /dockerdata/sonarqube/data && \
mkdir -p /dockerdata/sonarqube/extensions && \
mkdir -p /dockerdata/sonarqube/logs && \
mkdir -p /dockerdata/sonarqube/conf

3 把所有目录设置为 777 权限,避免权限问题

chmod 777 /dockerdata/sonarqube/postgres && \
chmod 777 /dockerdata/sonarqube/data && \
chmod 777 /dockerdata/sonarqube/extensions && \
chmod 777 /dockerdata/sonarqube/logs && \
chmod 777 /dockerdata/sonarqube/conf

创建数据库挂载

mkdir -p /dockerdata/postgres/postgresql &&\
mkdir -p /dockerdata/postgres/data

chmod -R 777 /dockerdata/postgres/postgresql &&\
chmod -R 777 /dockerdata/postgres/data

4 创建 /dockerdata/sonarqube/docker-compose.yml 文件,描述了 docker 详情:

第一个版本

version: '3'
services: 
  postgres:    
    image: postgres:12   
    restart: always
    container_name: sonarqube_postgres
    ports:
      - 5432:5432
    volumes:
      - /dockerdata/postgres/postgresql/:/var/lib/postgresql
      - /dockerdata/postgres/data/:/var/lib/postgresql/data
    environment:
      TZ: Asia/Shanghai    
      POSTGRES_USER: sonar   
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    networks: 
      - sonar-network
  sonar:
    image: sonarqube:7.9-community
    restart: always 
    container_name: sonarqube
    depends_on:
      - postgres
    volumes:
      - /dockerdata/sonarqube/extensions:/opt/sonarqube/extensions
      - /dockerdata/sonarqube/logs:/opt/sonarqube/logs
      - /dockerdata/sonarqube/data:/opt/sonarqube/data
      - /dockerdata/sonarqube/conf:/opt/sonarqube/conf
    ports:
      - 9000:9000
    environment:
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
    networks: 
      - sonar-network
networks:
  sonar-network:
    driver: bridge

5 修改一个系统配置,我启动 docker 时报有相关错误(相关报错在/dockerdata/sonarqube/logs/es.log 中)

cd /etc
vim sysctl.conf 
加入vm.max_map_count=262144
sysctl -p

6 启动容器

docker-compose up -d

浏览器访问

ip:9000


↙↙↙阅读原文可查看相关链接,并与作者交流