赞
踩
环境:
- CentOS 7.5 64位
- Docker version 19.03.5
- Java version “1.8.0_241”
- Maven version 3.6.3
项目代码存放在gitee,不是github
方式一:docker安装
docker安装jenkins涉及容器化的知识,搞了一整天没搞出来…
推荐使用方式二
## 执行该命令可以搜索jenkins镜像
docker search jenkins
## 执行该命令可以搜索jenkins安装包
docker run --name jenkins -u root -d -p 8010:8010 -v $HOME/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
-v $HOME/jenkins:/var/jenkins_home
表示将当前计算机登录用户主目录jenkins
文件夹映射到jenkins容器中的/var/jenkins_home
目录。如果你的当前登录用户是root,运行该命令后,会在/root
目录下自动生成jenkins
子目录。-v /var/run/docker.sock:/var/run/docker.sock
表示允许jenkinsci/blueocean
容器与Docker守护进程通信,如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的!!!如果运行声明式管道,其语法包含agent部分,例如:agent { docker { ... } }
此选项是必需的。方式二:war文件安装
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install jenkins
线上的linux服务器下载可能会很慢。我们可以自己下载好rpm包,上传上去再安装。
安装命令:
yum install ./jenkins-2.250-1.1.noarch.rpm
安装完成之后,我希望可以把jenkins默认的8080端口改为8010:
vi /etc/sysconfig/jenkins
找到8080,修改成8010。
检查jenkins是否配置jdk,在candidates后面加上自己的jdk路径:
vi /etc/rc.d/init.d/jenkins
启动jenkins:
service jenkins start
访问jenkins:http://ip:8010
然后就是按照提示去找初始密码解锁jenkins,选择安装推荐的插件,创建一个管理员帐号。
1. Gitee插件
插件安装之后,打开“系统管理” --> “系统设置”,找到Gitee 配置
,配置如下:
https://gitee.com/profile/personal_access_tokens
2. Docker插件
安装完插件记得重启一下才会生效。http://ip:8010/restart
1. 设置用户权限
选择“系统管理”-“全局安全配置”
按下图设置用户权限。Anonymous Users和Authenticated Users设置为只读,刚刚新建的用户设置为管理者权限。(如果没有刚刚新建的用户点击下方的“Add user or group…”,输入你的用户名即可)
2. 配置JDK、Maven、Git、Docker
选择“系统管理”-“全局工具配置”
a. 配置JDK
b. 配置Maven
c. 配置Git
d. 配置Docker
如果没有docker配置选项。去“插件管理”中搜索安装“docker build step”。(插件安装完记得restart)
3. 设置通知邮件
选择“系统管理”-“系统配置”
【记得要先设置“系统管理员邮箱地址”!!!】不然后面配置了也测试不通过
设置邮件默认内容:
<hr/>
(本邮件是程序自动下发的,请勿回复!)<br/><hr/>
项目名称:$PROJECT_NAME<br/><hr/>
构建编号:$BUILD_NUMBER<br/><hr/>
svn版本号:${SVN_REVISION}<br/><hr/>
构建状态:$BUILD_STATUS<br/><hr/>
触发原因:${CAUSE}<br/><hr/>
构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>
配置发送邮箱信息:
4. 创建任务
a. 新建任务
b. 配置项目代码路径、git帐号密码
c. 配置远程触发器
d. 配置maven构建参数
每次构建前,删除工作空间
配置maven构建参数
/home/project/postman/bin
目录要在服务器上先创建好,run.sh
文件要放到bin目录中。
run.sh
文件内容如下:
#操作/项目路径(Dockerfile存放的路劲) BASE_PATH=/home/project/postman # 源jar路径 SOURCE_PATH=/var/lib/jenkins/workspace/postman/target # jar包名称 JAR_NAME=postman-1.0-SNAPSHOT #容器id CID=$(docker ps | grep "postman" | awk '{print $1}') DATE=`date +%Y%m%d%H%M` # 最新构建代码 移动到项目环境 function transfer(){ echo "最新构建代码 $SOURCE_PATH/$JAR_NAME.jar 迁移至 $BASE_PATH ...." sudo cp $SOURCE_PATH/$JAR_NAME.jar $BASE_PATH echo "迁移完成" } # 备份 function backup(){ if [ -f "$BASE_PATH/$JAR_NAME.jar" ]; then echo "$JAR_NAME.jar 备份..." sudo cp $BASE_PATH/$JAR_NAME.jar $BASE_PATH/backup/$JAR_NAME-$DATE.jar sleep 3 sudo rm -rf $BASE_PATH/$JAR_NAME.jar echo "备份 $JAR_NAME.jar 完成" else echo "$BASE_PATH/$JAR_NAME.jar不存在,跳过备份" fi } # 构建docker镜像 function build(){ echo "开始构建镜像..." cd $BASE_PATH sudo docker build -t postman . } # 运行docker容器 function run(){ backup transfer build if [ -n "$CID" ]; then echo "存在postman容器,CID=$CID,重启docker容器 ..." sudo docker stop $CID sudo docker rm $CID sudo docker run --name postman -d -p 8091:8091 postman echo "postman容器重启完成" else echo "不存在postman容器,docker run创建容器..." sudo docker run --name postman -d -p 8091:8091 postman echo "postman容器创建完成" fi } #入口 run
e. 配置构建后操作
配置邮件通知:
在以下红框部分加入想要通知的成员邮箱,多个邮箱以“,”或空格进行分割:
第一次构建:
发生错误:sudo: no tty present and no askpass program specified
解决办法:
sudo visudo
# 在文件的末尾加上一行
jenkins ALL=(ALL) NOPASSWD: ALL
# 重启Jenkins服务
/etc/init.d/jenkins restart
第二次构建:
发生错误:sudo: ./bin/run.sh: command not found
可能原因:文件是从winodws搬过来的会显示dos格式,要把它改成unix格式
vim编辑文件,利用:set ff
命令查看文件格式
可以看到如下信息:
fileformat=dos 或 fileformat=unix
解决办法:
cd /home/project/postman/bin/
vim run.sh
# 设置文件格式为unix
:set ff=unix
# 保存退出
:wq
第三次构建:
发生错误:sudo: ./bin/run.sh: command not found
可能原因:jenkins没有权限读取文件
解决办法:
chmod a+x run.sh
第四次构建:
完结,撒花✿✿✿
想多了,邮件通知这块虽然能用,但好像有点问题…
参考文章:
https://blog.csdn.net/June_D/article/details/84563662
https://www.cnblogs.com/wfd360/p/11314697.html
https://www.cnblogs.com/ming-blogs/p/10903408.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。