更新SonarQube Docker容器的故事


介绍

这是使SonarQube成为Docker容器的故事中SonarQube之后的故事。

背景

我帮助进行了一些开发,但是我在内部环境中使用的是SonarQube的较旧版本,并且它处于微妙的状态。
就个人而言,大约两年前,我将SonarQube做成了Docker容器,因此我将其作为最新版本提供,因此在当时是个提醒。

你做了什么

  • 将SonarQube Ver 7.4更改为SonarQube Ver 8.4.2
  • 将SonarQube的数据库从MySQL更改为PostgreSQL版本13.0(MySQL支持终止)
  • 将docker-compose文件更改为Ver 3

将SonarQube Ver 7.4更改为SonarQube Ver 8.4.2

就像将Contaner Image更改为sonarqube:8.4.2-community一样简单。

1
2
3
4
  # SonarQube Server
  sonarqube-server:
    container_name: sonarqube-server
    image: sonarqube:8.4.2-community

将SonarQube的数据库从MySQL更改为PostgreSQL Ver 13.0

根据

MySQL支持终止,最新的SonarQube不支持MySQL,因此请切换到PostgreSQL。

将要使用的Contaner图像更改为postgres:13.0-alpine,并参考官方指南将volumesenvironment更改。
同时,将container_name等更改为易于理解的名称。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  # SonarQube Server用Database
  postgres-sonarqube:
    container_name: postgres-sonarqube
    image: postgres:13.0-alpine
    volumes:
      - "./data/postgresql/init:/docker-entrypoint-initdb.d"
      - "./data/postgresql/db:/var/lib/postgresql"
    ports:
      - "5432:5432"
    networks:
      - sonarqube-server-network
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
      - POSTGRES_DB=sonar

还要更改SonarQube容器的DB连接信息(environment)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  # SonarQube Server
  sonarqube-server:
    container_name: sonarqube-server
    image: sonarqube:8.4.2-community
    command: -Dsonar.web.context=/sonarqube
    links:
      - postgres-sonarqube:postgres
    volumes:
      - ./data/sonarqube/extensions/plugin:/opt/sonarqube/extensions/plugins
    ports:
      - "9000:9000"
      - "9092:9092"
    networks:
      - sonarqube-server-network
    environment:
      - SONARQUBE_JDBC_USERNAME=sonar
      - SONARQUBE_JDBC_PASSWORD=sonar
      - "SONARQUBE_JDBC_URL=jdbc:postgresql://postgres-sonarqube:5432/sonar"

将docker-compose文件更改为Ver 3

由于Ver3现在是主流,因此将docker-compose文件的版本更改为3

1
2
version: '3'
services:

操作检查

响应此点后,使用以下命令检查操作并完成工作。

1
docker-compose up --force-recreate sonarqube-server

印象数

这很容易,因为主要工作是版本升级,而不考虑数据迁移。
如果我再次将其放入Docker容器,我会觉得这个领域既简单又好。
我想我可以在一段时间内尽力而为。

本文的对应内容发布在下面的github存储库中,因此如果您感兴趣,请参考它。
https://github.com/awakuwaku/sonar-qube-docker

参考

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