资讯详情

docker+gitlab-runner的配置安装

1.先安装前提gitlab,我之前的文章涉及,直接在这里docker安装gitlab-runner:

docker pull gitlab/gitlab-runner:latest

下载OK后

2、运行gitlab-runner容器

---docker启动 docker run -d --name gitlab-runner \ --restart always \ -v /opt/docker-volume/gitlab-runner/config:/etc/gitlab-runner \ -v /opt/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest    ---docker启动  --如果之前gitlab配置网络,这里要和谐gitlab网络一致 docker run -d --name gitlab-runner --net=project1_net \ --restart always \ -v /opt/docker-volume/gitlab-runner/config:/etc/gitlab-runner \ -v /opt/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest

3.这里需要注册gitlab-runner

一开始没有配置runner时会在setting的CI/CD下面有个runner,点击扩展,将显示runner的url和token

我的操作是以后用的maven包装,使用maven:3.6.3-jdk-所以可以先做docker pull maven:3.6.3-jdk-8.拉取所需的镜像:

docker exec -it gitlab-runner gitlab-runner register -n \ --url http://192.168.29.133:8089/ \ --registration-token GR1348941kMCKgTJy4eo3ad7yJ_3S \ --executor docker \ --description "Docker Runner" \ --docker-image "maven:3.6.3-jdk-8" \ --docker-volumes /opt/run/docker.sock:/var/run/docker.sock 

注册成功后

会在gitlab的runners新增一个runner:

此时需要新增runner的话:

如果没有操作maven这里增加镜像配置sonarqube的信息:

如果使用sonarqube自己的scanner:

使用下面的前提是docker pullsonarsource/sonar-scanner-cli:latest,准备好这个镜像

docker exec -it gitlab-runner gitlab-runner register -n \ --url GITLAB-REGISTER-URL \ --registration-token GITLAB-REGISTER-TOKEN \ --executor docker \ --description "Docker Runner" \ --docker-image "sonarsource/sonar-scanner-cli:latest" \ --dokcer-dns 172.16.0.253 \ --docker-volumes /var/run/docker.sock:/var/run/docker.sock 

若要使用:

现在创建一个新项目,创建完成后Project overview、Details页面中可以看到一个CI/CD configuretion点击按钮添加选项.gitlab-ci.yml这是文件配置的内容sonar-scanner自己的工具镜像:

image:   name: sonarsource/sonar-scanner-cli:latest   entrypoint: [""] variables:   SONAR_TOKEN: "6d119e3e0798302753b652e06d52d2356ee9001d"  # 在sonarqube创建项目时生成TOKEN   SONAR_HOST_URL: "http://172.16.0.12:9000"   GIT_DEPTH: 0 sonarqube-check:   stage: test   script:     - sonar-scanner -X -Dsonar.qualitygate.wait=true -Dsonar.projectKey=myproject # sonarqube项目标识   allow_failure: true   only: # 仅检测master合并请求和master提交分支代码,sonarqube-ce版本只支持分析master分支     - merge_requests     - master 

此处提供maven配置信息:

image: maven:3.6.3-jdk-8  variables:   SONAR_TOKEN: "${sonar_token}"   SONAR_HOST_URL: "http://sonar.example.com:9000"   GIT_DEPTH: 0  stages:   - build_push   - feedback_to_gitlab  # 执行 SonarQube 分析,并将检测结果推到 SonarQube sonarqube_analysis:   stage: build_push   only:     - merge_requests     - master   script:     - mvn --batch-mode verify sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_TOKEN   tags:     - docker_runner  # 执行 SonarQube 分析,并反馈检测结果 GitLab sonarqube_gitlab_comment:   stage: feedback_to_gitlab   except:     - master   script:     - mvn --batch-mode verify sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_TOKEN -Dsonar.analysis.mode=preview -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.project_id=$CI_PROJECT_ID   tags:     - docker_runner 

sonarqube生成token:

标签: 3ad50c晶体管怎样

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台