gitlabrunner集成maven\sonar\node\nexus实现自动打包、代码扫描、发布到本地仓库

一 摘要

本文主要介绍gitlabrunner 与sonar 集成,实现代码扫描

二 环境信息

2.1 软件版本信息

软件 版本 安装方式
操作系统 centos7.9
gitlab 14.10 docker
gitlabrunner 14.10 docker
jdk 1.8 制作镜像里
maven 3.6.3 制作镜像里
sonar 7.9.3 docker
sonar-scanner 4.8.0 制作镜像里

三 集成

我这边集成是基于gitlabrunner 官方镜像,然后下载sonar 包,重新制作一个含sonar 软件包的gitlabrunner 镜像。此方法有点就是gitlab-ci.yml 里不需要安装sonar,缺点就是sonar 版本固化.
sonar 、gitlab、gitlabrunner 安装本文不在熬述!

3.1 准备工作

需自行安装好gitlab\sonar 。并下载好本文需要的软件

3.2 制作镜像

下面是存放文件目录

[root@localhost gitlabrunner]# ls -al
总用量 342960
drwxr-xr-x 5 root   root        4096 88 09:35 .
drwxr-xr-x 4 root   root          40 628 09:50 ..
drwxr-xr-x 6 root   root          99 615 20:01 apache-maven-3.6.3
-rw-r--r-- 1 root   root     9506321 614 16:53 apache-maven-3.6.3-bin.tar.gz
-rw-r--r-- 1 root   root     9248920 619 14:26 apache-maven-3.9.2-bin.tar.gz
-rw-r--r-- 1 root   root    47706112 614 17:06 docker-compose-linux-x86_64
-rw-r--r-- 1 root   root        1714 88 09:35 gitlabrunner.dockerfile
-rw-r--r-- 1 root   root        1067 625 14:58 gitlabrunner.dockerfile.bak.20230625
-rw-r--r-- 1 root   root        1541 87 17:07 gitlabrunner.dockerfile.bak.20230807
-rw-r--r-- 1 root   root        1104 616 11:32 gitlabrunner.dockerfile.bak.otheruser
-rw-r--r-- 1 root   root        1104 616 14:29 gitlabrunner.dockerfile.gitlabuser
-rw-r--r-- 1 root   root   194151339 615 17:05 jdk-8u231-linux-x64.tar.gz
-rw-r--r-- 1 root   root    23131523 88 09:31 node-v12.22.12-linux-x64.tar.gz
drwxr-xr-x 6 yunwei yunwei       108 718 20:00 node-v18.17.0-linux-x64
-rw-r--r-- 1 root   root    23839664 87 15:46 node-v18.17.0-linux-x64.tar.xz
drwxr-xr-x 6 root   root          51 1222 2022 sonar-scanner-4.8.0.2856-linux
-rw-r--r-- 1 root   root    43565694 625 14:58 sonar-scanner-cli-4.8.0.2856-linux.zip
[root@localhost gitlabrunner]# pwd
/root/dockerfile/gitlabrunner
[root@localhost gitlabrunner]#

3.2.1 制作镜像脚本

制作镜像
gitlabrunner_chinese:v14.10.1 是基于官网版本加了中文包

制作支持中文和zip 命令的gitlabrunner 镜像

FROM gitlab/gitlab-runner:v14.10.1
MAINTAINER weibi2
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y locales
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y zip

RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
    dpkg-reconfigure --frontend=noninteractive locales && \
    update-locale LANG=en_US.UTF-8


ENV LANG en_US.UTF-8

VOLUME ["/etc/gitlab-runner", "/home/gitlab-runner"]
ENTRYPOINT ["/usr/bin/dumb-init", "/entrypoint"]
CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"]

以下是集成了jdk\maven\node\sonar 的镜像脚本,大家可以把node 相关的内容删除

FROM xxx.com/gitlab/gitlabrunner_chinese:v14.10.1 
MAINTAINER xxx
RUN mkdir /usr/local/jdk
ADD jdk-8u231-linux-x64.tar.gz /usr/local/jdk/
RUN mkdir /usr/local/buildtools
ADD apache-maven-3.6.3-bin.tar.gz /usr/local/buildtools/

ADD node-v12.22.12-linux-x64.tar.gz /usr/local/buildtools/


RUN mkdir /usr/local/buildtools/sonar-scanner-4.8.0.2856-linux
COPY sonar-scanner-4.8.0.2856-linux  /usr/local/buildtools/sonar-scanner-4.8.0.2856-linux/

COPY docker-compose-linux-x86_64 /usr/local/bin/docker-compose
RUN chmod +x  /usr/local/bin/docker-compose

ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_231
ENV MAVEN_HOME /usr/local/buildtools/apache-maven-3.6.3
ENV SONAR_HOME /usr/local/buildtools/sonar-scanner-4.8.0.2856-linux
ENV NODE_HOME /usr/local/buildtools/node-v12.22.12-linux-x64
ENV PATH /usr/local/buildtools/node-v12.22.12-linux-x64/bin:/usr/local/buildtools/sonar-scanner-4.8.0.2856-linux/bin:/usr/local/buildtools/apache-maven-3.6.3/bin:/usr/local/jdk/jdk1.8.0_231/bin:/opt/gitlab/embedded/bin:/opt/gitlab/bin:/assets:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


RUN echo export JAVA_HOME=/usr/local/jdk/jdk1.8.0_231 >> /etc/profile
RUN echo export PATH=$PATH:$JAVA_HOME/bin >> /etc/profile

RUN echo export MAVEN_HOME=/usr/local/buildtools/apache-maven-3.6.3 >> /etc/profile
RUN echo export PATH=$PATH:$MAVEN_HOME/bin >> /etc/profile

RUN echo export SONAR_HOME=/usr/local/buildtools/sonar-scanner-4.8.0.2856-linux >> /etc/profile
RUN echo export PATH=$PATH:$SONAR_HOME/bin >> /etc/profile


VOLUME ["/etc/gitlab-runner", "/home/gitlab-runner"]
ENTRYPOINT ["/usr/bin/dumb-init", "/entrypoint"]
CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"]

3.2.2 制作镜像命令

3.3 集成node

node 集成后需要配置代理

你可能感兴趣的:(maven,java,gitlab,ci)