Docker
装置jenkins
一、环境筹备
1. 宿主机筹备 宿主机装置JDK\MAVEN\GIT\DOCKER\NPM2. 镜像筹备 jenkins/jenkins:latest-jdk8
二、jenkins
部署
1.镜像下载
docker pull jenkins/jenkins:latest-jdk8docker images | grep jenkins
2.查看镜像版本
docker inspect 44f8e2d8566c
3.启动脚本
restart.sh
- 挂载
docker
目录,容器里能够执行docker
命令- 改用
jenkins/jenkins:latest-jdk8
版本镜像,能够装置gitlab hook
- 挂载
maven
|npm
等目录 ,jdk
默认是:jdk8
。否则容器内无奈应用构建命令maven
要做好私服配置,仓库治理等
#!/bin/bash docker stop jenkins && docker rm jenkinsdocker run -d --name jenkins \ -u root \ --privileged=true \ --restart=always \ -p 8080:8080 -p 5000:5000 \ -v /usr/local/jenkins:/var/jenkins_home \ -v /toony/server/apache-maven-3.6.3:/usr/local/maven \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/localtime:/etc/localtime \ -v /root/.ssh:/root/.ssh \ jenkins/jenkins:latest-jdk8 #---- jenkinsci/blueocean 默认应用jdk11版本,装置gitlab hook失败 ------ #!/bin/bash docker stop jenkins && docker rm jenkinsdocker run -d --name jenkins \ -u root \ -p 8080:8080 -p 5000:5000 \ -v /toony/jenkins/jenkins_home:/var/jenkins_home \ -v /usr/local/java/jdk1.8.0_171:/var/jenkins_home/jdk8 \ -v /toony/server/apache-maven-3.6.3:/var/jenkins_home/maven \ -v /toony/jenkins/jenkinsci:/usr/jenkinsci \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean
docker-compose.yml
cat > docker-compose.yml <<-EOFversion: '3'services: docker_jenkins: user: root restart: always image: jenkins/jenkins:lts container_name: jenkins ports: - 8080:8080 - 5000:5000 volumes: - /toony/jenkins/jenkins_home:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose docker_nginx: restart: always image: nginx container_name: nginx ports: - 8090:80 - 80:80 - 433:433 volumes: - /toony/nginx/conf.d/:/etc/nginx/conf.d - /toony/webserver/static/jenkins/dist/dist:/usr/share/nginx/htmlEOF
4.配置插件镜像减速
- 将
url
https://updates.jenkins.io/update-center.json
- 批改为 清华大学官网镜像:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
cd /usr/local/jenkins/vim hudson.model.UpdateCenter.xml
5.拜访
http://http://xxx.61.41.102:8080
- 用户明码:admin
cat /usr/local/jenkins/secrets/initialAdminPassword或docker exec -it jenkins bash cat /var/jenkins_home/secrets/initialAdminPassword
6.插件装置
Jenkins -> Manage Jenkins -> System Configuration -> Manage Plugins -> Avaliable
Maven IntegrationGitLabGitLab HookSaltStackPublish Over SSH Git Parameter Build With ParametersAnsibleBuild PipelineParameterized TriggerParameterized Remote TriggerLocalization: Chinese (Simplified)
三、jenkins
配置
1.全局配置
Jenkins -> Manage Jenkins -> System Configuration -> Global Tool Configuration
jdk
|maven
|git
|npm
2.配置拜访gitlab
Jenkins -> Manage Jenkins -> Security -> Manage Credentials -> Stores scoped to Jenkins -> global -> Add Credentials -> Username 或者 SSH
3. 配置Push SSH Server
Jenkins -> Manage Jenkins -> System Configuration -> Publish over SSH -> SSH Servers -> Add -> Name|Hostname|Username|Remote Directory -> Use password authentication, or use a different key
四、配置gitlab
触发webhook
1. gitlabz设置root用户能够通过SSH形式拉取代码2. Jenkins装置好插件:Credentials Plugin|Gitlab Plugin|SSH Plugin|GitLab Hook3. jenkins增加gitlab的root用户私钥,以便前期拉取代码4. jenkins我的项目构建中减少触发器:Build Triggers -> Build when a change is pushed to GitLab -> Generate 保留:webhook URL 和 `secret token`5. gitlab我的项目中:Settings -> Webhooks 增加URL和Secret token
- 减少触发器
- 生成
secret token
五、装置中文插件
1.装置中文插件
Localization: Chinese (Simplified)Locale plugin
2.全局配置
Jenkins -> Manage Jenkins -> System Configuration -> Local -> Default Language :zh_CN
勾选Ignore browser ...
六、集成SonarQube
1.装置插件
SonarQube Scanner for Jenkins
2.SonarQube
创立Jenkins
登录token
3.Jenkins
配置拜访SonarQube
凭据
Jenkins -> Manage Jenkins -> Manage Credentials -> Stores scoped to Jenkins -> global -> Add Credentials -> Kind -> Secret text -> 填入token
4.Jenkins
系统配置
Jenkins -> Manage Jenkins -> System Configuration -> SonarQube servers ->Name、Server URL、Server authentication token
5.Jenkins
全局配置
Jenkins -> Manage Jenkins -> Global Tool Configuration ->配置 SonarQube Scanner
6.我的项目中配置
阐明
sonar.projectKey=test_01 # SonarQube中我的项目的惟一标识符。只有它是惟一的 sonar.projectName=test_server # SonarQube中我的项目显示的名称sonar.version=0.0.1-SNAPSHOT # 版本号sonar.sources=./src # 源码目录sonar.java.binaries=./target/classes # 编译后的文件目录# sonar.exclusions=**/*.xml,**/*.html #排除不须要检测的文件,如:xml、html sonar.language=java # 编程语言sonar.sourceEncoding=UTF-8sonar.scm.disabled=true
七、参考博客
- jenkins jenkinsci/blueocean 应用
- docker装置jenkinsci/blueocean并且创立pipeline我的项目
- docker装置配置jenkins,并部署到其余服务器
- 应用docker部署jenkins(jdk11)
- Centos 7.8下部署Jenkins Blue Ocean-Docker版
- docker装置Jenkins、jenkins插件、映射JDK和maven和RSA、publish over ssh公布
- Docker手把手部署jenkins教程,jenkins容器带jdk,maven,docker,git
- Jenkins的装置及中文展现、装置插件创立
- ★★ 配置Jenkins主动拉取gitlab中的代码并部署
- ★★ sonarQube部署及Jenkins集成sonarQube
- jenkins+sonar 继续集成检测代码品质