使用docker 安装 gitlab + jenkins + sonarqube

前期准备

安装docker、docker-compose

安装gitlab

这里使用docker-compose.yml便捷安装,内容如下

version: '3'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:13.2.0-ce.0'
    restart: always
    container_name: gitlab-ce              
    hostname: '127.0.0.1'                  # http://127.0.0.1,有域名的可以自行更换
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://127.0.0.1'    # http://127.0.0.1,有域名的可以自行更换
        # Add any other gitlab.rb configuration here, each on its own line
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
    ports:
      - '80:80'
      - '10443:443'
      - '10022:22'
    volumes:
      - '/etc/gitlab:/etc/gitlab'
      - '/var/log/gitlab:/var/log/gitlab'
      - 'gitlab:/var/opt/gitlab'          # 数据卷,防止数据丢失
volumes: 
  gitlab:

保存后执行 docker-compose up -d ,启动后访问ip地址即可

安装jenkins

这里使用docker-compose.yml便捷安装,内容如下

version: '3'
services:
  jenkins:
    image: jenkinsci/blueocean:1.23.2             # 官方推荐 自带蓝海插件(DevOps可视化)& LTS
    restart: always
    container_name: jenkins
    ports:
      - '10080:8080'
      - '50000:50000'
    environment:
      # 内存限制最大512m,官方文档要求:最低256 小团队1g 
      - JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -Duser.timezone=Asia/Shanghai 
    volumes:
      - jenkins:/var/jenkins_home                 # 使用数据卷
      - /var/run/docker.sock:/var/run/docker.sock
volumes:
  jenkins:                                        # 自动分配地址 docker volume inspect jenkins 查看

保存后执行 docker-compose up -d ,启动后访问ip:8080
遇到jenkins需要初始admin密码时,按以下方式查询

# 查看jenkins的容器id,应在第一列,我的为e93ac7465463
docker ls
# 查看日志
docker logs e93ac7465463
# 查看初始密码 

配置jenkins国内插件镜像

  1. 进入docker容器内,执行命令行
bash -c "$(curl -fsSL https://gitee.com/hummerstudio/jenkins-update-center-changer/raw/master/jenkins-update-center-changer.sh)"
  1. 重启jenkins容器即可

安装sonarqube

sonar占用内存最低2g,生产环境不推荐使用镜像自带的数据库。低配机器谨慎安装
这里使用docker-compose.yml便捷安装,内容如下

version: '3'
services:
  sonarqube:
    image: 'sonarqube:8.5-community'
    restart: always
    container_name: sonarqube
    deploy:
      resources:
        limits:
          cpus: '1'  # 初次安装初始化占用较大cpu,稳定后可加强限制为0.5
          memory: 2048M 
    healthcheck:
        timeout: 3600s # SonarQube 7.8开始,SonarQube会优雅地停止,等待所有正在进行的任务完成,避免docker杀死
    ports:
      - '9000:9000'
    volumes:
      - '/sonarqube/conf:/opt/sonarqube/conf'
      - '/sonarqube/extensions:/opt/sonarqube/extensions'
      - '/sonarqube/logs:/opt/sonarqube/logs'
      - '/sonarqube/data:/opt/sonarqube/data'

linux安装sonarqube,执行一些内容调优才能正常启动内置的ES

sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096

win安装sonarqube,没有sysctl命令

# 如果使用WSL 则先执行如下语句,再参照linux 执行
wsl -d docker-desktop

# 如果使用ssh登录docker-machine,再参照linux 执行
docker-machine ssh

原文地址:https://www.cnblogs.com/hyry/p/13395230.html