Docker搭建Sonarqube平台

Docker搭建Sonarqube平台

搭建postgresql

  1. 拉取镜像
    命令

    docker pull postgres:latest 
    
  2. 创建工作目录,为接下来的挂载自定义映射路径做准备

    mkdir -p /data/sonarqube_workspace/postgres/postgresql
    mkdir -p /data/sonarqube_workspace/postgres/data
    
  3. 创建网络

    docker network create sonarqube
    
  4. 创建容器并运行

    docker run -d \
    --name postgres \
    --net sonarqube \
    -p 5432:5432 \
    -v /data/sonarqube_workspace/postgres/postgresql:/var/lib/postgresql \
    -v /data/sonarqube_workspace/postgres/data:/var/lib/postgresql/data \
    -v /etc/localtime:/etc/localtime:ro \
    -e POSTGRES_USER=sonar \
    -e POSTGRES_PASSWORD=sonar \
    -e POSTGRES_DB=sonar \
    -e TZ=Asia/Shanghai \
    --restart always \
    --privileged=true \
    --network-alias postgres \
    postgres:latest
    
  5. 部署命令解释

  • -p 5432:5432:将容器 5432 映射到宿主机端口 5432
  • -v /data/sonarqube_workspace/postgres/postgresql:/var/lib/postgresql:将容器下的 /var/lib/postgresql 挂载到宿主机 /data/sonarqube_workspace/postgres/postgresql
  • -v /etc/localtime:/etc/localtime:ro:设置容器与宿主机时间一致
  • –e POSTGRES_USER=sonarqube:设置数据库用户名
  • -e POSTGRES_PASSWORD=sonarqube:设置数据库密码
  • -e POSTGRES_DB=sonarqube:新建db
  • -e TZ=Asia/Shanghai:设置时区
  • –restart always:容器退出时总是重启
  • –privileged=true:挂载主机目录Docker访问出现Permission denied的解决办法
  • –net sonarqube:容器接入自定义网络
  • –network-alias postgres:给容器起个网络别名

搭建sonarqube

  1. 拉取镜像,这里拉取的是tag为7.4-community(7.6及以上对的版本与jenkins的sonar-qube插件展示不兼容,以后官方会解决兼容问题)

    docker pull sonarqube:7.4-community
    
  2. 创建工作目录

    mkdir -p /data/sonarqube_workspace/sonarqube
    
  3. 修改系统参数

    echo "vm.max_map_count=262144" > /etc/sysctl.conf
    sysctl -p
    
  4. 通过临时容器准备相关文件目录
    运行一个test容器

    docker run -d --name sonartest sonarqube:7.4-community
    

    将容器内重要文件复制到宿主机

    docker cp sonartest:/opt/sonarqube/conf /data/sonarqube_workspace/sonarqube
    docker cp sonartest:/opt/sonarqube/data /data/sonarqube_workspace/sonarqube
    docker cp sonartest:/opt/sonarqube/logs /data/sonarqube_workspace/sonarqube
    docker cp sonartest:/opt/sonarqube/extensions /data/sonarqube_workspace/sonarqube
    

    删除此test容器

    docker kill sonartest
    docker rm sonartest
    

    修改文件夹权限

    chmod -R 777 /data/sonarqube_workspace/sonarqube/
    
  5. 创建容器并运行
    这里分为两步,首先在配置文件中去设置username, password, 和jdbc的url

    a. 找到 /data/sonarqube_workspace/sonarqube/conf/ 路径下的文件 sonar.properties
    找到如下配置去掉注释。并赋值 username,password,注意这里的username和password要和创建postgresql时候的一致

    sonar.jdbc.username=sonar
    sonar.jdbc.password=sonar
    

    b.修改sonar.jdbc.url
    去掉 sonar.jdbc.url 注释,配置url,注意url中的最后一个字符串表示数据库名称,需要和创建数据库容器实例时候的数据库名称保持一致

    #----- PostgreSQL 9.3 or greater By default the schema named “public” is used. It can be overridden with the parameter “currentSchema”.

    sonar.jdbc.url=jdbc:postgresql://postgres:5432/sonar
    

    c.执行命令去创建容器

    docker run -d --name sonarqube -p 9000:9000 \
     --net sonarqube \
     --privileged=true \
     --restart always \
     -v /data/sonarqube_workspace/sonarqube/logs:/opt/sonarqube/logs \
     -v /data/sonarqube_workspace/sonarqube/conf:/opt/sonarqube/conf \
     -v /data/sonarqube_workspace/sonarqube/data:/opt/sonarqube/data \
     -v /data/sonarqube_workspace/sonarqube/extensions:/opt/sonarqube/extensions\
     sonarqube:7.4-community
    

    备注: 之前尝试过直接使用传入参数的username和password和jdbc.url的方式去创建容器,但是遇到了问题,所以使用上面这种方式去创建容器

参考博客地址: https://www.cnblogs.com/shenh/p/13428029.html

致谢: 说参考博客的博主写的非常好,给了我非常大指导,赞一个,最主要是还提供了一个稳定可用的版本的版本号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值