docker-compose安装sonarqube

编写docker-compose.yml

version: "3"

services:
  sonarqube:
    image: sonarqube:10.6.0-community
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    #先注释下方的持久化挂载配置,待容器启动后将目录从容器拷贝到本地磁盘再打开注释
    #volumes:
      #- /data/sonarqube/sonarqube/data:/opt/sonarqube
    ports:
      - "9000:9000"
  db:
    image: postgres:16.3
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - /data/sonarqube/postgresql:/var/lib/postgresql
      - /data/sonarqube/postgresql_data:/var/lib/postgresql/data

如果hub.docker.com访问不了,镜像tag可以从这里查看 https://explore.ggcr.dev/?repo=
在这里插入图片描述

启动并持久化

在这里插入图片描述

 报错1
#临时解决系统参数:
sysctl -w vm.max_map_count=262144
#永久解决:
vim /etc/sysctl.conf
vm.max_map_count=262144
#生效:
sysctl -p #修改了 /etc/sysctl.conf 文件中的内核参数后,使用 sysctl -p 命令可以立即应用这些更改,而不需要重新启动系统

启动容器
docker-compose up -d
#查看容器名或容器id
docker ps

持久化 #从容器中拷贝sonarqube目录到本地
docker cp sonarqube-sonarqube-1:/opt/sonarqube /data/sonarqube/

 报错2
#es目录授权
chomod -R 777 /datas/sonarqube/onarqube/data/es8
#修改docker-compose.yml,配置持久化
vim docker-compose.yml
version: "3"

services:
  sonarqube:
    image: sonarqube:10.6.0-community
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    #先注释下方的持久化挂载配置,待容器启动后将目录从容器拷贝到本地磁盘再打开注释
    #volumes:
      #- /data/sonarqube/sonarqube/data:/opt/sonarqube
    ports:
      - "9000:9000"
  db:
    image: postgres:16.3
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - /data/sonarqube/postgresql:/var/lib/postgresql
      - /data/sonarqube/postgresql_data:/var/lib/postgresql/data
 #重启
 docker-compose down
 docker-compose up -d
启动报错问题

报错1:ES依赖系统参数问题

2024.08.06 09:35:12 ERROR es[][o.e.b.Elasticsearch] node validation exception
[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. For more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.13/bootstrap-checks.html]
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]; for more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.13/_maximum_map_count_check.html]
ERROR: Elasticsearch did not exit normally - check the logs at /opt/sonarqube/logs/sonarqube.log
2024.08.06 09:35:12 INFO  es[][o.e.n.Node] stopping ...
2024.08.06 09:35:12 INFO  es[][o.e.n.Node] stopped
2024.08.06 09:35:12 INFO  es[][o.e.n.Node] closing ...
2024.08.06 09:35:12 INFO  es[][o.e.n.Node] closed
临时解决:
sysctl -w vm.max_map_count=262144
永久解决:
vim /etc/sysctl.conf
vm.max_map_count=262144
生效:
sysctl -p
修改了 /etc/sysctl.conf 文件中的内核参数后,使用 sysctl -p 命令可以立即应用这些更改,而不需要重新启动系统

报错2:ES目录权限问题

2024.08.06 09:56:28 ERROR es[][o.e.b.Elasticsearch] fatal exception while booting Elasticsearch
java.lang.IllegalStateException: failed to obtain node locks, tried [/opt/sonarqube/data/es8]; maybe these locations are not writable or multiple nodes were started on the same data path?
	at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:293) ~[elasticsearch-8.13.4.jar:?]
	at org.elasticsearch.node.NodeConstruction.validateSettings(NodeConstruction.java:500) ~[elasticsearch-8.13.4.jar:?]
	at org.elasticsearch.node.NodeConstruction.prepareConstruction(NodeConstruction.java:255) ~[elasticsearch-8.13.4.jar:?]
	at org.elasticsearch.node.Node.<init>(Node.java:192) ~[elasticsearch-8.13.4.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch$2.<init>(Elasticsearch.java:237) ~[elasticsearch-8.13.4.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase3(Elasticsearch.java:237) ~[elasticsearch-8.13.4.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.13.4.jar:?]
Caused by: java.io.IOException: failed to obtain lock on /opt/sonarqube/data/es8
	at org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:238) ~[elasticsearch-8.13.4.jar:?]
	at org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:206) ~[elasticsearch-8.13.4.jar:?]
	at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:285) ~[elasticsearch-8.13.4.jar:?]
	... 6 more
Caused by: java.nio.file.NoSuchFileException: /opt/sonarqube/data/es8/node.lock
chmod -R 777 /datas/sonarqube/onarqube/data/es8

在这里插入图片描述

登录验证

登录浏览器验证
http://localhost:9000
admin / admin

汉化

在这里插入图片描述

汉化包下载不下来
wget  https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-10.6/sonar-l10n-zh-plugin-10.6.jar
mv sonar-l10n-zh-plugin-10.6.jar /data/sonarqube/sonarqube/extensions/plugins/
docker restart sonarqube-sonarqube-1
Caused by: org.sonar.api.utils.SonarException: Fail to download: https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-10.6/sonar-l10n-zh-plugin-10.6.jar
	at org.sonar.core.util.DefaultHttpDownloader.failToDownload(DefaultHttpDownloader.java:153)
	at org.sonar.core.util.DefaultHttpDownloader.download(DefaultHttpDownloader.java:133)
	at org.sonar.server.plugins.PluginDownloader.downloadRelease(PluginDownloader.java:144)
	at org.sonar.server.plugins.PluginDownloader.download(PluginDownloader.java:117)
	... 171 common frames omitted
Caused by: java.net.SocketTimeoutException: Connect timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(Unknown Source)
	at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source)
	at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
	at java.base/java.net.Socket.connect(Unknown Source)
	at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
验证

在这里插入图片描述

参考文档

  • https://docs.sonarsource.com/sonarqube/latest/setup-and-upgrade/install-the-server/installing-sonarqube-from-docker/
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值