centos7.6-arm64/v8上使用docker安装sonarqube+mysql

其实主要的步骤都是类似的,只是需要的镜像需要找一下。

网上大部分都是amd64的arm64的少

先列出来

mysql的镜像,使用5.7版本

psybull/mysql-arm64:5.7

sonarqube镜像,使用7.7版本

koolwithk/sonarqube-arm:7.7-community

官网上已经声明 sonarQube 7.9 版本以上不再支持 mysql 了

但是为了维护方便,我们还是用的mysql。减少维护成本。

主要分两步,启动mysql和启动sonarqube

一、启动mysql

1、先拉取mysql镜像

docker pull psybull/mysql-arm64:5.7

2、创建工作目录,挂载mysql文件

mkdir -p /usr/mysql/conf
mkdir -p /usr/mysql/logs
mkdir -p /usr/mysql/data

3、创建网络,后面sonarqube和mysql共用一个网络

docker network create sonarqube-tier

4、创建容器并运行

docker run --name mysql -d -p 3306:3306 --net sonarqube-tier -v /usr/mysql/conf:/etc/mysql/conf.d -v /usr/mysql/logs:/logs -v /usr/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --restart always --privileged=true --network-alias mysql psybull/mysql-arm64:5.7
  • -p 3306:3306:将容器 3306 映射到宿主机端口 3306
  • -v /usr/mysql/conf:/etc/mysql/conf.d:将容器下的 /etc/my.cof.d 挂载到宿主机 /usr/mysql/conf
  • -e MYSQL_ROOT_PASSWORD=123456:设置 root 密码 123456
  • --restart always:容器退出时总是重启
  • --privileged=true:挂载主机目录Docker访问出现Permission denied的解决办法
  • --net sonarqube-tier:容器接入自定义网络
  • --network-alias mysql:给容器起个网络别名

使用docker ps查看运行状态

5、创建sonar数据库

先在/usr/mysql/conf/创建一个my.cnf文件

跳过权限校验。

vi /usr/mysql/conf/my.cnf
[mysqld]
skip-name-resolve

进入mysql镜像

docker exec -it mysql /bin/bash

登陆mysql并创建sonar用户

flush privileges;  刷新权限
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ’ YOU-PASSWORD ’ WITH GRANT OPTION; 修改密码
flush privileges; 再次刷新权限
如果不做上述步骤的话mysql -u root -p登陆不上,即使使用正确的密码
GRANT ALL ON *.* TO 'root'@'%';  #所有网络都可访问
create database sonar;     #创建 sonarqube 数据库

# 添加远程登录用户:sonar ,并授予权限。
CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';  
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';

flush privileges;    # 刷新权限

二、启动sonarqube

1、拉取sonarqube镜像

docker pull koolwithk/sonarqube-arm:7.7-community

2、创建工作目录

mkdir -p /data/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
docker cp sonartest:/opt/sonarqube/data /data/sonarqube
docker cp sonartest:/opt/sonarqube/logs /data/sonarqube
docker cp sonartest:/opt/sonarqube/extensions /data/sonarqube

然后删除此容器

docker rm sonartest

修改文件夹权限

chmod -R 777 /data/sonarqube/

5、运行sonarqube

docker run -d --name sonar -p 9000:9000 \
 -e ALLOW_EMPTY_PASSWORD=yes \
 -e SONARQUBE_DATABASE_USER=sonar \
 -e SONARQUBE_DATABASE_NAME=sonar \
 -e SONARQUBE_DATABASE_PASSWORD=sonar \
 -e SONARQUBE_JDBC_URL="jdbc:mysql://mysql:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \
 --net sonarqube-tier \
 --privileged=true \
 -v /data/sonarqube/logs:/opt/sonarqube/logs \
 -v /data/sonarqube/conf:/opt/sonarqube/conf \
 -v /data/sonarqube/data:/opt/sonarqube/data \
 -v /data/sonarqube/extensions:/opt/sonarqube/extensions\
 koolwithk/sonarqube-arm:7.7-community

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

中文化

新版本sonaqube可以去市场搜索中文语言包如下。我这个为了兼容jenkins插件,用的是7.4版本,需要去官网下对应的中文包。

https://github.com/SonarQubeCommunity/sonar-l10n-zh/tags 

找到

1.24

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

 

参考链接:https://www.cnblogs.com/shenh/p/13428029.html

posted @ 2022-06-02 16:11  菲菲菲菲菲常新的新手  阅读(896)  评论(0编辑  收藏  举报