小知识:Docker 安装Jenkins全过程及踩坑指南

Docker 安装 Jenkins

开始前最好,将docker升级到最新版本(至少大于17)

1. 安装过程

首先拉取镜像:docker pull jenkins(我安装的是Jenkins 2.275) 创建本地数据卷:mkdir -p /data/jenkins_home/ 修改用户授权:chown -R 1000:1000 /data/jenkins_home/ 启动容器: docker run -d –name jenkins -p 7900:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins 这里挂载了物理盘映射 还挂载了docker映射 访问对应网址:xxx:7900 获取初始管理员密码(两种方式,因为映射了本地逻辑卷) docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword 或者在进入容器后(docker exec -it jenkins /bin/bash):cat /data/jenkins_home/secrets/initialAdminPassword 选择安装推荐的插件等待即可 按照流程创建管理员账户 根据之前的情况创建实例,即完成

2. Jenkins 安装 npm

首先以root权限进入容器:docker exec -it -u root jenkins bash

2.1. 替换容器的源

备份:cp /etc/apt/sources.list /etc/apt/sources.list.bak 查看系统版号:lsb_release -c,并且将下文中替换文件中的对应位置进行修改 修改:vim /etc/apt/sources.list,如果无法拉取:sudo apt install apt-transport-https ca-certificates,vim中使用shift+insert插入 W: Unable to read /etc/apt/preferences.d/ – DirectoryExists (2: No such file or directory):这时新建此文件夹即可mkdir /etc/apt/preferences.d 如果没有vim,先apt update,然后apt install vim
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
添加node源:curl -sL https://deb.nodesource.com/setup_14.x | sudo bash –

2.2. 安装nodejs和npm

然后安装node.js:apt-get install nodejs,一定要先更新源 然后安装npm:apt-get install npm, 之后替换npm源:npm config set registry http://registry.npm.taobao.org/

3. Jenkins流水线 + Docker + Maven + Github webhooks + Spring boot 

3.1. 需要的插件和配置

3.1.1. 插件 Blue Ocean Maven Integration 3.1.2. 配置 查看容器的全部信息:docker inspect jenkins,其中的Env项中包含了JAVA_HOME等环境信息,如下所示
“Env”: [ “PATH=/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”, “LANG=C.UTF-8”, “JAVA_HOME=/usr/local/openjdk-8”, “JAVA_VERSION=8u242”, “JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_”, “JAVA_URL_VERSION=8u242b08”, “JENKINS_HOME=/var/jenkins_home”, “JENKINS_SLAVE_AGENT_PORT=50000”, “REF=/usr/share/jenkins/ref”, “JENKINS_VERSION=2.275”, “JENKINS_UC=https://updates.jenkins.io”, “JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental”, “JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals”, “COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log” ]
进行全局工具配置:Jenkins -> 系统管理 -> 全局工具管理 jdk配置,如果没有自动安装,如果有则使用上面的JAVA_HOME地址即可

%小知识:Docker 安装Jenkins全过程及踩坑指南-猿站网-插图

Git配置

%小知识:Docker 安装Jenkins全过程及踩坑指南-1猿站网-插图

Docker配置

%小知识:Docker 安装Jenkins全过程及踩坑指南-2猿站网-插图

3.1.3. 安装maven 同样的进入容器:docker exec -it -u root jenkins bash 下载maven压缩包:wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz 解压缩maven安装包:tar -zvxf apache-maven-3.6.3-bin.tar.gz 配置环境变量:vi /etc/profile(安装vi:apt-get install vi)
export MAVEN_HOME=/opt/apache-maven-3.6.3 export MAVEN_HOME export PATH=$PATH:$MAVEN_HOME/bin

编辑maven的settings.xml来替换源(位置conf/下),在<mirrors></mirrors>标签内添加一下任意一个

<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
刷新权限:source /etc/profile 然后在Jenkins -> 系统管理 -> 全局工具管理继续进行Maven配置

%小知识:Docker 安装Jenkins全过程及踩坑指南-3猿站网-插图

3.1.4. 配置Jenkins使用Docker 之前在创建容器的时候已经完成了sock的映射 登录进入jenkins容器:docker exec -it -u root jenkins bash 安装docker client:
apt-get update && apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common && curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo “$ID”)/gpg > /tmp/dkey; apt-key add /tmp/dkey && add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo “$ID”) $(lsb_release -cs) stable” && apt-get update && apt-get -y install docker-ce
通过输入docker来检查是否成功 授予jenkins用户docker权限: 以root用户身份进入jenkins容器:docker exec -it -u root jenkins /bin/bash 查看当前用户情况:ls -l /var/run/docker.sock 授权jenkins用户:chown jenkins: /var/run/docker.sock 再次查看用户情况:ls -l /var/run/docker.sock 检查docker ps之类的命令是否可以使用 3.1.5. 配置Jenkins中的Git SSH 进入jenkins容器:docker exec -it jenkins /bin/bash 生成SSH密钥:ssh-keygen,一路回车使用默认值 查找密钥:cat /var/jenkins_home/.ssh/id_rsa.pub 然后登录Github,在settings->SSH and GPG keys中添加密钥。 3.1.6. Github添加Webhook 进入想要部署的仓库,settings -> webhook,选择Add Webhook 设置payload_url为jenkins对应地址:xxx(jenkins访问网址)/github-webhook/ 选择Just the push event.和Active后保存即可 3.1.7. 配置主从节点

避免出现如下报错:pending—Waiting for next available executor

进入对应位置:系统管理 -> 节点管理 点击配置主从节点,设置至少为2个。

%小知识:Docker 安装Jenkins全过程及踩坑指南-4猿站网-插图

3.2. 使用流水线新建任务

点击新建任务,新建一个名为Jenkins-Demo的流水线任务

%小知识:Docker 安装Jenkins全过程及踩坑指南-5猿站网-插图

构建触发器选择GitHub hook trigger for GITScm polling

%小知识:Docker 安装Jenkins全过程及踩坑指南-6猿站网-插图

流水线中(jenkinsfile文件放置在仓库根目录下) 定义选择Pipeline script from SCM SCM选择Git Repository URL输入对应仓库的git@xxx.git地址 如果出现报错如下,则先进入jenkins容器输入命令git ls-remote -h — git@github.com:xxx.git HEAD:并输入yes确认
无法连接仓库:Command “git ls-remote -h — git@github.com:xxx.git HEAD” returned status code 128: stdout: stderr: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists
最后指定分支为main,整体如下图所示

%小知识:Docker 安装Jenkins全过程及踩坑指南-7猿站网-插图

之后选择保存即可 之后点击立即构建来查看效果

4. GitLab + Jenkins + Spring Boot

4.1. 配置GitLab插件和连接

Jenkins需要安装插件GitLab Plugin和GitLab Hook Plugin 进入系统配置,找到GitLab的配置位置,进行配置

%小知识:Docker 安装Jenkins全过程及踩坑指南-8猿站网-插图

注意上面需要的API token需要到GitLab的用户设置中,生成Personal Access Tokens 填写完成后点击Test Connection,如果显示Success表示配置成功 完成GitLab的Ssh配置,过程完全类似第二大步中的对应步骤。

4.2. 创建项目

勾选Build when a change is pushed to GitLab. GitLab webhook URL: 下拉找到点击高级,找到Allowed branches,选择Filter branch by name(一般是master) 在下拉,来到流水线中,选择Pipeline script from SCM,URL填写GitLab获取的URL,进行测试(注意如果出现git ls-remote -h — ssh://git@xxx.git HEAD,第一次是需要进入容器执行该命令,并输入yes) 进入GitLab的对应项目仓库,找到settings->integration配置刚刚得到的webhook URL(注意看提示),然后点击Test(模拟一次Push events),如果返回为403码,则查看参考八 之后配置好jenkinsfile,然后跟踪构建结果即可。

5. Jenkins 使用Pipeline集成Cobertura(不支持Java 1.8)

jenkins首先安装插件Cobertura Plugin 在pom文件的build->plugins下添加如下的plugin以生成xml格式的覆盖率检查报告
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <configuration> <formats> <format>xml</format> </formats> <check/> </configuration> </plugin>
使用:mvn cobertura:cobertura生成相应的测试报告,默认路径为**/target/site/cobertura/ 在流水线中添加如下post以添加覆盖报告到Jenkins UI。
post { always { step([$class: “CoberturaPublisher”, autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: “**/target/site/cobertura/coverage.xml”, failUnhealthy: false, failUnstable: false, maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: “ASCII”, zoomCoverageChart: false, enableNewApi: true]) } }

6. Jenkins 使用pipeline集成jacoco

在jenkins中安装jacoco插件 在html发布后发现了403问题,在script界面运行System.clearProperty(“hudson.model.DirectoryBrowserSupport.CSP”) 之后重新构建并发布HTML报告即可

7.参考

实用插件

Jenkins 嵌入到 Iframe

Jenkins用户组管理

配置Jenkins的分布式构建和部署

jenkins分布式构建和部署(master-slave)

Jenkins官方教程 Docker 安装 Jenkins (超详细) Jenkins 插件安装失败解决办法 Jenkins+Docker+github+Spring Boot自动化部署 Jenkins容器中安装Docker Jenkins持续集成显示pending—Waiting for next available executor 30分钟搞定 Jenkins CI gitlab webhook jenkins 403问题解决方案 jenkins安全内容配置策略

到此这篇关于Docker 安装Jenkins 踩坑全指南的文章就介绍到这了,更多相关Docker 安装Jenkins内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/qq_44202160/article/details/123103994

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:在vmware虚拟机安装dpdk的详细过程

2023-3-9 17:03:27

建站知识

小知识:彻底搞懂Docker镜像分层的实现

2023-3-9 17:18:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索