sonarqub7.0迁移

背景
公司的sonarqub安装在swarm环境,并且自建postgresql数据库,现公司所有容器服务迁移Kubernetes,包含sonarqub,soanr历史数据备份迁移阿里云RDS。

  • 数据备份
pg_dump -h localhost -U sonar sonar > sonar.bak 
  • 新建阿里云RDS
  • DTS迁移
  • 创建sonar project
    在这里插入图片描述

下载sonarqube-7.0.zip包并解压,在/sonarqube-7.0/extensions/plugins 目录中下载加入以下jar包。压缩成sonarqube.zip放入工程。

sonar-csharp-plugin-6.7.1.4347.jar
sonar-flex-plugin-2.3.jar
sonar-java-plugin-5.1.0.13090.jar
sonar-javascript-plugin-4.0.0.5862.jar
sonar-php-plugin-2.12.1.3018.jar
sonar-python-plugin-1.9.0.2010.jar
sonar-scm-git-plugin-1.3.0.869.jar
sonar-scm-svn-plugin-1.6.0.860.jar
sonar-typescript-plugin-1.5.0.2122.jar
sonar-xml-plugin-1.4.3.1027.jar

Dockerfile

FROM registry-vpc.cn-hangzhou.aliyuncs.com/r_d_arch_team/baseimage-java:8

RUN yum -y install zip unzip

ENV SONAR_VERSION=7.0 \
    SONARQUBE_HOME=/opt/sonarqube \
    SONARQUBE_JDBC_USERNAME=sonar \
    SONARQUBE_JDBC_PASSWORD=2I88PhvI9NGjQJU2 \
    SONARQUBE_JDBC_URL=jdbc:postgresql://pgm-bp16q397n3428o76.pg.rds.aliyuncs.com:3433/sonar

# Http port
EXPOSE 9000

RUN groupadd -r sonarqube && useradd -r -g sonarqube sonarqube

COPY sonarqube.zip /opt/

RUN set -x \
    && cd /opt \
    && unzip -q sonarqube.zip \
    && mv sonarqube-$SONAR_VERSION sonarqube \
    && chown -R sonarqube:sonarqube sonarqube \
    && rm sonarqube.zip* \
    && rm -rf $SONARQUBE_HOME/bin/*

VOLUME "$SONARQUBE_HOME/data"

WORKDIR $SONARQUBE_HOME
COPY run.sh $SONARQUBE_HOME/bin/
RUN set -x \
    && chown -R sonarqube:sonarqube $SONARQUBE_HOME/bin/run.sh \
    && chmod 777  $SONARQUBE_HOME/bin/run.sh
USER sonarqube
ENTRYPOINT ["./bin/run.sh"]

run.sh

#!/usr/bin/env bash

set -e

if [ "${1:0:1}" != '-' ]; then
  exec "$@"
fi

# Parse Docker env vars to customize SonarQube
#
# e.g. Setting the env var sonar.jdbc.username=foo
#
# will cause SonarQube to be invoked with -Dsonar.jdbc.username=foo

declare -a sq_opts

while IFS='=' read -r envvar_key envvar_value
do
    if [[ "$envvar_key" =~ sonar.* ]] || [[ "$envvar_key" =~ ldap.* ]]; then
        sq_opts+=("-D${envvar_key}=${envvar_value}")
    fi
done < <(env)


exec java -jar lib/sonar-application-$SONAR_VERSION.jar \
  -Dsonar.log.console=true \
  -Dsonar.jdbc.username="$SONARQUBE_JDBC_USERNAME" \
  -Dsonar.jdbc.password="$SONARQUBE_JDBC_PASSWORD" \
  -Dsonar.jdbc.url="$SONARQUBE_JDBC_URL" \
  -Dsonar.web.javaAdditionalOpts="$SONARQUBE_WEB_JVM_OPTS -Djava.security.egd=file:/dev/./urandom" \
  "${sq_opts[@]}" \
  "$@"

  • 问题
    1、soanr 数据库DTS迁移过成中,迁移失败,目标数据库和源数据库lc_monetary不一样,
    set lc_monetary=‘en_US.utf8’ 解决
    2、sonarqub启动之后,登录页面,没有默认Rules和Quality Profiles,启动日志无报错信息。
    原因是soanrqub数据库中已存在表和数据,soanr启动不会初始化下载plugins。可以将数据库中表都删除或者自己下载plugins在sonarqube-7.0/extensions/plugins中,本公司需要保留历史数据,所以此处自行下载plugins。启动后默认Rules和Quality Profiles加载成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值