• 使用Docker搭建Sonarqube代码扫描环境


    Sonarqube环境搭建

    这里推荐使用docker进行搭建,其他方式搭建,可参考之前的文章:SonarQube环境搭建

    使用Docker 搭建Sonar的代码扫描环境:

    1、先创建好几个目录,用来挂在docker数据卷,方便以后查看日志之类的,不用每次都进入容器里面看

    cd /home/jenkins/docker_volume
    mkdir postgresql  sonarqube
    cd sonarqube
    mkdir data extensions  logs
    

    2、使用docker命令安装postgresql数据库以及sonarqube服务端

    下载镜像:
    docker pull postgres
    docker pull sonarqube
    启动postgresql镜像:
    cd /home/jenkins/docker_volume
    通过下面的命令会启动一个postgresql的实例,并创建一个和用户名相同的数据库
    docker run -itd --name postgresql -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -p 5432:5432 -v $PWD/postgresql:/var/lib/postgresql/data  postgres
    
    
    启动sonarqube镜像:
    注意:SONARQUBE_JDBC_URL中指定的数据库如果手动改成了其他的话,是需要先在postgresql上创建好数据库的
    docker run -itd --name sonarqube -p 9000:9000 --link postgresql:db  
    -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar   
    -v $PWD/sonarqube/data:/opt/sonarqube/data  -v $PWD/sonarqube/extensions:/opt/sonarqube/extensions -v $PWD/sonarqube/logs:/opt/sonarqube/logs   sonarqube
    
    
    

    3、检查是否搭建成功

    a),通过navicat工具连接PostgreSQL,检查是否可以连接,并且可以查看sonar的数据库下面是否自动创建了相关的表。

    b),检查sonarqube的服务端的地址是否可以正常访问:

    搭建过程中遇到的问题&&注意事项

    1、启动sonarqube镜像的时候,可能会报错,日志中会提示

    max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] , 

    解决方法:

    编辑 /etc/sysctl.conf,追加以下内容:

    vm.max_map_count=262144
    

    保存后,执行:

    sysctl  -p

    2、启动可能报无法连接到数据库 ,需要检查数据库是否提前创建好。

    3、postgresql的容器被删除重新启动后,如果重启sonarqube的容器,那么将会报错:Error response from daemon: Cannot link to a non running container: /postgresql AS /sonarqube/db

    解决方案:

    执行命令:service docker restart

    4、如果大家从网上看其他人写的博客什么的,启动sonarqube镜像的时候,可能还会暴露9092端口 ,我查了一圈资料,目前没看到这个端口干什么用的,可以暂时不映射这个端口,后续如果出现问题 可以再进行处理。

    总结

    1、用docker进行容器化部署的时候,为什么要使用-v参数映射数据卷呢?

    映射数据卷的目的,是为了实现数据持久化,这样的话 ,如果在启动容器的时候,少写了什么参数之类,或者后面想添加什么其他的参数,不会影响里面现有的业务数据之类的。

    2、平常在学习技术的时候,应该怎么样去学习呢?

    1. 要多关注行业的动态,多跟同行的人去交流,了解一下大家平时都在用些什么技术或者工具,自己没听过的,可以去简单了解一下,扩宽一下自己的知识面。

    2. 选定一个要学习的内容之后,可以采用自底向上/自顶向下的方式去进行学习,即 可以先从最基础的语法等开始学,然后再运用到工作中,也可以先看简单的用法,先弄出一个demo,然后在这个基础上再去扩展学习更深层次的内容。

    往期推荐

    你们要的测试练习网站来了

    Jenkin踩过的坑~上

    0基础入门软件测试之小白指南

    Fiddler Everywhere之AutoResponder功能详解

    Postman+Newman+Git+Jenkins实现接口自动化测试持续集成

    一篇文章为你揭秘pytest的基本用法

    Jenkins自动部署测试环境之jar包部署

    App自动化测试之Appium环境搭建

    以淘宝为例教你如何突破网站对selenium的屏蔽

    Nexus3 OSS环境搭建以及在日常工作中的用途

  • 相关阅读:
    Linux文件与目录管理(一)
    Linux文件基本属性
    软工实践总结
    微软必应词典的调查与研究
    调研安卓开发环境的发展演变
    软件工程的预定目标
    学习进度第5周
    机械学习----KNN算法
    MyBatis:简介、第一个程序01(纯小白非常实用)
    解决数据库连接时区的问题
  • 原文地址:https://www.cnblogs.com/xiaobotester/p/13906142.html
Copyright © 2020-2023  润新知