Jenkins (四) - 搭建 Docker SonarQube

Jenkins (四) - 搭建 Docker SonarQube

拉取 SonarQube

$ docker pull sonarqube

拉取 postgres

$ $ docker pull postgres

运行 postgres

$ docker run -itd \
-e TZ=Asia/Shanghai
-e POSTGRES_USER=tester \
-e POSTGRES_PASSWORD=123456 \
-p 5432:5432 \
-v /home/tester/data/docker/postgresql/data:/var/lib/postgresql/data \
--name postgres postgres

运行 SonarQube

SonarQube 默认使用h2数据库,通过配置 SONAR_JDBC_URL, SONAR_JDBC_PASSWORD, SONAR_JDBC_USERNAME 替换为postgres.

$ docker run -d \
--name sonarqube \
-e TZ=Asia/Shanghai \
-e SONAR_JDBC_USERNAME=tester \
-e SONAR_JDBC_PASSWORD=123456 \
-e SONAR_JDBC_URL=jdbc:postgresql://192.168.56.102:5432/sonarqube \
-v /home/tester/data/docker/sonarqube/extensions:/opt/sonarqube/extensions \
-v /home/tester/data/docker/sonarqube/logs:/opt/sonarqube/logs \
-v /home/tester/data/docker/sonarqube/data:/opt/sonarqube/data \
-v /home/tester/data/docker/sonarqube/conf:/opt/sonarqube/conf \
-p 9000:9000 \
--name sonarqube sonarqube

查看sonarqube是否已运行成功

$ docker ps 

启动可能会出错,出错查看文末 启动失败

验证postgres连接

在这里插入图片描述

登入SonarQube

http://192.168.56.102:9000
默认账号密码: admin/admin
在这里插入图片描述
更改密码为 123456
在这里插入图片描述

启动失败

第一次启动一般都会失败,可以通过查看web.log, es.log分析原因。

$ cd /home/tester/data/docker/sonarqube/logs
$ ls -l

web.log

2024.04.04 01:21:42 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:37975]
2024.04.04 01:21:42 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube/elasticsearch]: /opt/java/openjdk/bin/java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.script=./bin/elasticsearch -Dcli.libs=lib/tools/server-cli -Des.path.home=/opt/sonarqube/elasticsearch -Des.path.conf=/opt/sonarqube/temp/conf/es -Des.distribution.type=tar -cp /opt/sonarqube/elasticsearch/lib/*:/opt/sonarqube/elasticsearch/lib/cli-launcher/* org.elasticsearch.launcher.CliToolLauncher
2024.04.04 01:21:42 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2024.04.04 01:21:50 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 78
2024.04.04 01:21:50 INFO  app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
2024.04.04 01:21:50 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped

如果遇到es启动失败,多半是由于vm.max_map_count 过小。记得查看es.log,通常es.log会有对应的错误提示。

es.log

2024.04.04 01:21:50 INFO  es[][o.e.t.TransportService] publish_address {127.0.0.1:37975}, bound_addresses {127.0.0.1:37975}
2024.04.04 01:21:50 INFO  es[][o.e.b.BootstrapChecks] explicitly enforcing bootstrap checks
2024.04.04 01:21:50 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.11/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.11/_maximum_map_count_check.html]
2024.04.04 01:21:50 WARN  es[][o.e.n.Node] unexpected exception while waiting for http server to close
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Can't move to stopped state when not started
	at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:?]
	at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:?]
	at org.elasticsearch.node.Node.prepareForClose(Node.java:1776) ~[elasticsearch-8.11.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.shutdown(Elasticsearch.java:468) ~[elasticsearch-8.11.0.jar:?]
	at java.lang.Thread.run(Unknown Source) ~[?:?]
Caused by: java.lang.IllegalStateException: Can't move to stopped state when not started
	at org.elasticsearch.common.component.Lifecycle.canMoveToStopped(Lifecycle.java:128) ~[elasticsearch-8.11.0.jar:?]
	at org.elasticsearch.common.component.AbstractLifecycleComponent.stop(AbstractLifecycleComponent.java:73) ~[elasticsearch-8.11.0.jar:?]
	at org.elasticsearch.node.Node.lambda$prepareForClose$59(Node.java:1768) ~[elasticsearch-8.11.0.jar:?]
	at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]

解决方案

  • 临时修改
# 查看vm.max_map_count
$ sudo sysctl -a | grep vm.max_map_count
vm.max_map_count = 65530
# 更新vm.max_map_count
$ sudo sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
  • 永久修改
$ vim /etc/sysctl.conf

Reference: 来自官方说明

Continuing from the previous point, to use mmap effectively, Elasticsearch also requires the ability to create many memory-mapped areas. The maximum map count check checks that the kernel allows a process to have at least 262,144 memory-mapped areas and is enforced on Linux only. To pass the maximum map count check, you must configure vm.max_map_count via sysctl to be at least 262144.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/521351.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

京东云服务器4核8G主机租用价格418元一年,1899元3年

京东云轻量云主机4核8G服务器租用价格418元一年,1899元3年,配置为:轻量云主机4C8G-180G SSD系统盘-5M带宽-500G月流量,京东云主机优惠活动 yunfuwuqiba.com/go/jd 可以查看京东云服务器详细配置和精准报价单,活动打开如…

【mac操作】brew指令集

brew指令集记录 1. brew search 【软件名称】2. rm -rf $(brew --cache)3. brew install 【软件名】4. brew uninstall 【软件名】5. 未完待续,,,, 官网路径: Homebrew官网 最上面就来一个homebrew安装指令吧&#xf…

win10上一个详细的Django开发入门例子

1.Django概述 Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。 Django 框架的核心组件有: 用于创建模型的对象关系映射; 为最终用户设计较好的管理界面&#xff1b…

阿里云倚天云服务器详解_CPU采用倚天710处理器

阿里云倚天云服务器CPU采用倚天710处理器,租用倚天服务器c8y、g8y和r8y可以享受优惠价格,阿里云服务器网aliyunfuwuqi.com整理倚天云服务器详细介绍、倚天710处理器性能测评、CIPU架构优势、倚天服务器使用场景及生态支持: 阿里云倚天云服务…

c# wpf LiveCharts MVVM绑定 简单试验

1.概要 c# wpf LiveCharts MVVM绑定 简单试验 2.代码 <Window x:Class"WpfApp3.Window3"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://s…

gitea简单介绍

Gitea是一个轻量级的开源自托管Git服务&#xff0c;提供了类似GitHub的功能和界面。它是一个简单、易于安装和使用的Git代码托管解决方案&#xff0c;适用于个人、小型团队和企业。 Gitea的主要特点如下&#xff1a; 自托管&#xff1a;Gitea允许在自己的服务器上搭建和管理…

web安全学习笔记(6)

记一下第十节课的内容。 一.PHP语言中的if else判断 语法和c语言中非常类似&#xff0c;不再赘述&#xff0c;也可以使用if...elseif...elseif...else 1.True和False 2.&#xff0c;和 一个等号是赋值 两个等号是比较 三个等号是全等&#xff08;内容相等&#xff0c;数…

调用阿里云API接口实现电商领域命名实体识别NER

文章目录 阿里云简介命名实体识别NER阿里云API注册调用代码阿里云简介 阿里云是全球领先的云计算及人工智能科技公司,成立于2009年,为200多个国家和地区的企业、开发者和政府机构提供服务。阿里云提供了一系列的云计算服务,包括服务器租赁、云数据库、云存储、人工智能等,…

pytest的时候输出一个F后面跟很多绿色的点解读

使用pytest来测试pyramid和kotti项目&#xff0c;在kotti项目测试的时候&#xff0c;输出一个F后面跟很多绿色的点&#xff0c;是什么意思呢&#xff1f; 原来在使用pytest进行测试时&#xff0c;输出中的“F”代表一个失败的测试&#xff08;Failed&#xff09;&#xff0c;而…

自动驾驶中的交通标志识别原理及应用

自动驾驶中的交通标志识别原理及应用 附赠自动驾驶学习资料和量产经验&#xff1a;链接 概述 道路交通标志和标线时引导道路使用者有秩序使用道路&#xff0c;以促进道路行车安全&#xff0c;而在驾驶辅助系统中对交通标志的识别则可以不间断的为整车控制提供相应的帮助。比如…

Yalmip使用教程(7)-求解器的参数设置

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译&#xff1a;https://yalmip.github.io/tutorials/ 这篇博客将详细介绍yalmip工具箱中常用的求解器设置选项。 1.求解器的基本设置 使用sdpsettings函数可以对求解的相关参数进行设置。最常用的设置…

【操作系统】STM32-操作系统——持续更新

【操作系统】STM32-操作系统——持续更新 文章目录 前言一、ucosii二、freertos1.介绍2.移植 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ucosii UCOSII移植到STM32F103C8T6上之移植记录&#xff08;一&#xff09; UCOSII移植到ST…

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年,35M带宽

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年&#xff0c;35M带宽&#xff0c;配置为&#xff1a;16C64G-450G SSD系统盘-35M带宽-8000G月流量 华北-北京&#xff0c;京东云活动页面 yunfuwuqiba.com/go/jd 活动链接打开如下图&#xff1a; 京东云16核64G云服务器…

通用爬虫的概念简述

一、&#x1f308;什么是通用爬虫 通用爬虫&#xff08;General Purpose Web Crawler或Scalable Web Crawler&#xff09;是一种网络爬虫&#xff0c;其设计目标是对整个互联网或尽可能广泛的网络空间进行数据抓取。通用爬虫主要用于搜索引擎构建其庞大的网页索引数据库&#…

LaTeX 空格与换行

任意多个空格与一个空格的功能相同。只有字符后面的空格是有效的&#xff0c;每行最前面的空格被忽略。单个换行被视作一个空格&#xff0c;连续两个换行表示分段。~被称作一种不可打断的空格&#xff0c;排版系统不会在这种空格之间换行。西文的逗号、句号和分号等标点后面应该…

二分查找 -- 力扣(LeetCode)第704题

题目 https://leetcode.cn/problems/binary-search/description/ 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例…

【毕业论文】酒店价格采集与可视化查询设计与实现开题报告2000字

酒店价格采集与可视化查询设计与实现开题报告 研究背景 随着互联网技术的飞速发展&#xff0c;人们获取信息的途径越来越多样化。特别是在旅游行业中&#xff0c;消费者对于酒店价格的透明度和实时性要求越来越高。美团、大众点评、抖音等平台作为信息聚合和分享的重要渠道&a…

SpringMVC框架简介

前言 现在由于功能以及业务的复杂性&#xff0c;大部分系统从技术上就拆分开为前后端分离&#xff0c;单体应用我都很少没接触了&#xff0c;导致现在对springMVC那套都忘记了很多东西&#xff0c;因此这篇文章在来回忆一下SpringMVC这个框架&#xff1b;很多时候因为业务的需…

SQL语言

一、DDL数据库定义语言 1、登录mySQL mysql -u"用户名" -p"密码" -h"登录地址 -h&#xff1a;默认为本机 示例&#xff1a; 2、查看当前存在的数据库 show databases; 示例&#xff1a; 3、创建数据库database create…

Jenkins (五) - Docker SonarQube

Jenkins (五) - Docker SonarQube Jenkins 集成 SonarQube&#xff0c;编译项目并通过SonarQube分析项目 前提 基于已有的环境 Jenkins (四) - Docker SonarQube 基于 Jenkins (三) - 拉取编译 上的mockito-demo工程 配置工程 Administration -> Projects -> Manage…