1 - SonarQube镜像

https://hub.docker.com/_/sonarqube/

Dockerfile - 7.9.1-community

https://github.com/SonarSource/docker-sonarqube/blob/8ae0fadc72fef64334998e811f1b9cf68a458a2c/7/community/Dockerfile

2 - 准备动作

永久修改Linux系统级别的参数

[root@node201 ~]# vim /etc/sysctl.conf
[root@node201 ~]# cat /etc/sysctl.conf |grep -v "#"
vm.max_map_count = 262144
fs.file-max = 65536
[root@node201 ~]#
[root@node201 ~]# vim /etc/security/limits.conf
[root@node201 ~]# cat /etc/security/limits.conf |grep -v "#"
* soft nofile 65536
* hard nofile 65536
[root@node201 ~]#
[root@node201 ~]# reboot
......
......
......
[root@node201 ~]# sysctl vm.max_map_count
vm.max_map_count = 262144
[root@node201 ~]# sysctl fs.file-max
fs.file-max = 65536
[root@node201 ~]# ulimit -n
65536
[root@node201 ~]# ulimit -u
31155
[root@node201 ~]#

3 - 拉取Sonar镜像并启动

3.1 拉取镜像

命令

docker pull postgres:10
docker pull sonarqube:7.9.1-community

实例

[root@md200 ~]# docker pull postgres:10
10: Pulling from library/postgres
d599a449871e: Pull complete
eadd55e4a4ae: Pull complete
17eea069a47f: Pull complete
22b703021b03: Pull complete
5fa72174baec: Pull complete
338e0b17322b: Pull complete
05fd528a5e36: Pull complete
c224328d751f: Pull complete
f4319784a7ce: Pull complete
6b0ef024e116: Pull complete
5bc4176bd4c3: Pull complete
79c29b3c031a: Pull complete
9419079907eb: Pull complete
4b9b9c707beb: Pull complete
Digest: sha256:74e63f8b55e9b0ca55b78abb203d01e47c5ac7d3f10af09f91d5932943c6bb14
Status: Downloaded newer image for postgres:10
docker.io/library/postgres:10
[root@md200 ~]#
[root@md200 ~]#
[root@md200 ~]# docker pull sonarqube:7.9.1-community
7.9.1-community: Pulling from library/sonarqube
000eee12ec04: Pull complete
2f1dc2bdcfe1: Pull complete
eec880363624: Pull complete
8992c959a11d: Pull complete
25ff10872c55: Pull complete
9a775036a9e6: Pull complete
10640c614c1e: Pull complete
0a5459c4b518: Pull complete
b68f6850bf39: Pull complete
Digest: sha256:64d3a0e6fc899542d9171b0a94135ea7c4b51fbb25842ca782baf0de00f66535
Status: Downloaded newer image for sonarqube:7.9.1-community
docker.io/library/sonarqube:7.9.1-community
[root@md200 ~]#
[root@md200 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkinsci/blueocean latest c1fc8b2b664c 41 hours ago 563MB
postgres 10 1ba73c5b23e7 2 weeks ago 250MB
sonarqube 7.9.1-community ea9ce8f562b5 2 weeks ago 480MB
hello-world latest fce289e99eb9 11 months ago 1.84kB
[root@md200 ~]#

3.2 运行容器

启动postgres

docker run \
-d \
--name postgres10 \
-p 5432:5432 \
-e POSTGRES_USER=sonar \
-e POSTGRES_PASSWORD=123456 \
postgres:10

启动SonarQube

docker run \
-d \
--name sonarqube7.9 \
-p 9000:9000 \
--link postgres10 \
-e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres10:5432/sonar \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD=123456 \
-v sonarqube_conf:/opt/sonarqube/conf \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
-v sonarqube_data:/opt/sonarqube/data \
sonarqube:7.9.1-community

映射SonarQube存储(如果需要)

  -v sonarqube_conf:/opt/sonarqube/conf \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
-v sonarqube_data:/opt/sonarqube/data \

实例

[root@md200 ~]# docker run \
> -d \
> --name postgres10 \
> -p 5432:5432 \
> -e POSTGRES_USER=sonar \
> -e POSTGRES_PASSWORD=123456 \
> postgres:10
32f698f11a3a814d01d554f92f10acac3f3735e91b51ed56ff9062a3528a4755
[root@md200 ~]#
[root@md200 ~]# docker run \
> -d \
> --name sonarqube7.9 \
> -p 9000:9000 \
> --link postgres10 \
> -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres10:5432/sonar \
> -e SONARQUBE_JDBC_USERNAME=sonar \
> -e SONARQUBE_JDBC_PASSWORD=123456 \
> -v sonarqube_conf:/opt/sonarqube/conf \
> -v sonarqube_extensions:/opt/sonarqube/extensions \
> -v sonarqube_logs:/opt/sonarqube/logs \
> -v sonarqube_data:/opt/sonarqube/data \
> sonarqube:7.9.1-community
85ade3d038eee52616e820917079f532351baba795b3cc7cbdfab72026625676
[root@md200 ~]#

4 - 检查状态

容器运行状态

[root@md200 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85ade3d038ee sonarqube:7.9.1-community "./bin/run.sh" 5 seconds ago Up 4 seconds 0.0.0.0:9000->9000/tcp sonarqube7.9
32f698f11a3a postgres:10 "docker-entrypoint.s…" 10 minutes ago Up 10 minutes 0.0.0.0:5432->5432/tcp postgres10
a99b21fb6ce8 jenkinsci/blueocean "/sbin/tini -- /usr/…" 20 minutes ago Up 20 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp myjenkins
[root@md200 ~]#

防火墙

[root@md200 ~]# firewall-cmd --zone=public --permanent --add-port=9000/tcp
success
[root@md200 ~]# firewall-cmd --zone=public --permanent --add-port=5432/tcp
success
[root@md200 ~]#
[root@md200 ~]# firewall-cmd --reload
success
[root@md200 ~]#

浏览器访问 http://192.168.16.200:9000 

初始使用 admin/admin 登录

查看数据库信息

5 - 设置中文界面

根据提示重启Sonar Server

中文界面

6 - 参考信息

SonarQube - 以Docker方式启动SonarQube的更多相关文章

  1. Docker方式安装SonarQube

    获取镜像 docker pull postgres: docker pull sonarqube:-community 启动镜像 docker run -d -p : -e POSTGRES_PASS ...

  2. Docker 方式运行 sonarqube

    From 平台测试部同事的 ppt 感谢. 拉取镜像 docker pull postgres docker pull sonarqube 运行镜像 docker run --name db --re ...

  3. nginx docker 方式启动后日志切分的正确姿势

    Linux系统的日志文件的切分主要是由logrotate来完成的,以centos7为例配置通常在/etc/logrotate.d 目录下 添加 nginx 文件 cat nginx /var/log/ ...

  4. kali-rolling安装使用sonarqube教程(docker方式)

    一.说明 最近要找一款代码审计工具,Fortify SCA太贵,VisualCodeGrepper不太好用.在freebuf上看到可用sonarqube来建代码自动化扫描系统所以也来试一试. 直接安装 ...

  5. docker + mysql安装sonarqube

    docker sonarqube地址:https://hub.docker.com/_/sonarqube docker mysql地址:https://hub.docker.com/_/mysql ...

  6. docker使用redis.conf配置文件方式启动redis无反应无日志

    如题,场景重现:因为配置多了,不想通过参数来启动docker容器中的redis,特意上github找了对应版本的redis.conf,修改了相关配置,只让本机使用: 上传到/mydata/redis/ ...

  7. docker安装redis并以配置文件方式启动

    镜像相关 redis镜像 # 不限定版本 docker pull redis # 拉取 redis为4.0.9版本的镜像 docker pull redis:4.0.9 # 拉取之后查看镜像 dock ...

  8. 利用docker compose启动gitlab及runner

    添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...

  9. 使用内网的Docker Image启动AcmeAir应用

    1.修改docker启动选项,添加信赖私有仓库 为了拉取docker.oneapm.me仓库里的镜像,我们需要将它添加为信赖仓库,方式是在启动选项中添加 --insecure-registry doc ...

随机推荐

  1. CentOS下的IPMI尝试

    1.载入支持 ipmi 功能的系统模块 modprobe ipmi_msghandler modprobe ipmi_devintf modprobe ipmi_poweroff modprobe i ...

  2. Ubuntu\Linux 下编写及调试C\C++

    一.在Ubuntu\Linux 下编写及调试C\C++需要配置基本的环境,即配置gcc编译器.安装vim编译器,具体配置安装步骤我在这里就不多说了. 二.基本环境配置完了我们就可以进入自己的程序编写了 ...

  3. cert-manager管理内网k8s开发环境证书

    目的 内网k8s开发环境配置HTTPS,保持与生产环境的配置的一致性,其必要性有: PWA开发,HTTPS是必要条件 网页引入HTTP资源,如果开发环境是HTTP就不会被开发和测试人员发现,造成生产环 ...

  4. 安装spyder记录

    sudo apt-get install spyder 报错:ERROR: Could not find a version that satisfies the requirement pyqt5& ...

  5. scentos7安装redis,以及redis的主从配置

    redis的安装 下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 解压压缩包 tar -zxvf redis- ...

  6. Python正则表达式re模块学习遇到的问题

    Python正则表达式处理的组是什么? Python正则表达式处理中的匹配对象是什么? Python匹配对象的groups.groupdict和group之间的关系 Python正则表达式re.mat ...

  7. PyQt(Python+Qt)学习随笔:Qt Designer中toolBar的orientation属性和iconSize属性

    orientation属性 orientation属性用于确认工具栏是水平方向还是垂直方向,这个属性对于QMainWindow中的工具栏来说没有意义,因为QMainWindow中的工具栏支持在上下左右 ...

  8. PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性

    在Qt Designer中布局控件有4个,分别是Vertical Layout(垂直布局).Horizontal Layout(水平布局).Grid Layout(网格布局).Form Layout( ...

  9. PyQt(Python+Qt)学习随笔:布局控件layout的LeftMargin等contentsMargins属性

    在Qt Designer中布局控件有4个,分别是Vertical Layout(垂直布局).Horizontal Layout(水平布局).Grid Layout(网格布局).Form Layout( ...

  10. Android基础02

    初识安卓的另一个重要的组件---广播. 1.广播的分类 标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播 接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言.这 ...