Docker 安装sonarQube 步骤以及遇到的坑
本文最后更新于 1692 天前,其中的信息可能已经有所发展或是发生改变。

Docker 安装sonarQube 步骤以及遇到的坑

sonarQube 是一款开源代码检测工具。通过 sonar-scanner 插件扫描代码,把数据存储到数据库,sonarQube 读取数据库,将数据库展现在 web 平台。

Docker 安装 postgresql

如果安装sonarQube是7.9已经的话可以忽悠选择mysql,因为sonarQube 7.9以上版本已不再支持mysql

实际上我不太喜欢数据库使用容器部署,因此真实环境我也没从docker部署postgresql

1.拉取 postgresql 镜像

docker pull postgresql:latest

2.创建工作目录

为接下来的挂载自定义映射路径做准备

mkdir -p /home/sonar/postgres/postgresql
mkdir -p /home/sonar/postgres/data

3.创建网络

docker network create sonarqube-network

4.创建容器并运行

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

安装 sonarQube

1.拉取镜像

我这里拉取的是 tag 是 8.9.6-community

docker pull sonarqube:8.9.6-community

2.创建工作目录

为接下来的挂载自定义映射路径做准备

mkdir -p /data/sonarqube_dir

3.修改系统参数

不修改此参数,启动后es直接报错:docker SonarQube Process exited with exit value [es]: 78

echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p

4.运行一个test容器

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

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

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

然后删除此容器

docker stop sonartest
docker rm sonartest

修改文件夹权限

chmod -R 777 /data/sonarqube_dir/

5.创建容器并运行

如果是使用docker安装的pgsql,则需要在创建sonarqube容器加上--network sonarqube-network

 docker run -d --name sonar -p 29000:9000 \
 -e ALLOW_EMPTY_PASSWORD=yes \
 -e SONARQUBE_DATABASE_USER=sonar \
 -e SONARQUBE_DATABASE_NAME=sonar \
 -e SONARQUBE_DATABASE_PASSWORD=sonar@139.com \
 -e SONARQUBE_JDBC_URL="jdbc:postgresql://10.228.27.9:5432/sonar" \
 --privileged=true \
--network sonarqube-network \
 --restart always \
 -v /data/sonarqube_dir/logs:/opt/sonarqube/logs \
 -v /data/sonarqube_dir/conf:/opt/sonarqube/conf \
 -v /data/sonarqube_dir/data:/opt/sonarqube/data \
 -v /data/sonarqube_dir/extensions:/opt/sonarqube/extensions\
 sonarqube:8.9.6-community

 #####不做映射的使用
  docker run --name sonar \
--network sonarqube-network \
 -e SONARQUBE_JDBC_URL=jdbc:postgresql://10.228.27.9:5432/sonar \
 -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar@139.com \
 -p 29000:9000 -d sonarqube:8.9.6-community

若这种方式出现连不上数据库 postgres 的问题,可使用下面方法,是直接修改配置文件

找到 /data/sonarqube_dir/conf/ 路径下的文件 sonar.properties,修改如下并保存

# 找到如下配置去掉注释。并赋值 username,password
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar@139.com

# 去掉 sonar.jdbc.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://0.228.27.9:5432/sonar

使用docker命令创建容器

 docker run -d --name sonar -p 29000:9000 \
 --privileged=true \
 --restart always \
 --network sonarqube-network \
 -v /data/sonarqube_dir/logs:/opt/sonarqube/logs \
 -v /data/sonarqube_dir/conf:/opt/sonarqube/conf \
 -v /data/sonarqube_dir/data:/opt/sonarqube/data \
 -v /data/sonarqube_dir/extensions:/opt/sonarqube/extensions\
 sonarqube:8.9.6-community

运行成功后,浏览器输入http://ip:9090,开始初始化数据库,这个时间过程比较长,大概几分钟。初始化成功后进入登录界面,账号:admin 密码:admin

6.部署中文包

中文语言包下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/tags 。找到自己版本对应的中文包。

将 jar 包放入 /data/sonarqube/extensions/plugins ,重启 sonarqube。

遇到的问题可参考:https://www.jianshu.com/p/a388252af433

使用docker-compose安装

创建目录

mkdir -p /data/sonarqube/

新建/data/sonarqube/docker-compose.yml

version: "3.0"
services:
  postgresql:
    image: postgres:12.3
    restart: always
    container_name: my-postgres
    networks:
      - sonarnet
    environment:
      POSTGRES_DB: sonar
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar@139.com
      TZ: Asia/Shanghai
    volumes:
      - /data/sonarqube/postgres/postgresql:/var/lib/postgresql
      - /data/sonarqube/postgres/postgresql_data:/var/lib/postgresql/data
      - /etc/localtime:/etc/localtime:ro

  sonarqube:
    image: sonarqube:8.9.6-community
    container_name: sonar
    depends_on:
      - postgresql
    ports:
      - "29000:9000"
    networks:
      - sonarnet
    environment:
      TZ: Asia/Shanghai
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar@139.com
      SONARQUBE_DATABASE_NAME: sonar
      SONARQUBE_JDBC_URL: jdbc:postgresql://postgresql:5432/sonar
    volumes:
      - /data/sonarqube/conf:/opt/sonarqube/conf
      - /data/sonarqube/data:/opt/sonarqube/data
      - /data/sonarqube/log:/opt/sonarqube/log
      - /data/sonarqube/extensions:/opt/sonarqube/extensions

networks:
  sonarnet:
    driver: bridge

创建容器

docker-compose up -d

登录

运行成功后,浏览器输入http://ip:9090,开始初始化数据库,这个时间过程比较长,大概几分钟。初始化成功后进入登录界面,账号:admin 密码:admin

评论

  1. Image
    test
    Windows Chrome 104.0.0.0
    4 年前
    2022-8-12 11:49:47

    docker启动正常,但连不上

    • Image
      博主
      test
      Windows Edge 104.0.1293.47
      4 年前
      2022-8-12 13:55:51

      我这边刚自己测了一次~也是顺利运行

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇