Docker部署jenkins
- https://jenkins.io/zh/doc/book/installing/ 查看官方提供的部署信息
拉取镜像
建议使用的Docker 官方镜像
docker run \ -u root \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v $(which docker):/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkins/jenkins:lts-jdk17
- 运行镜像
docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins
要注意宿主机的外挂文件权限必须是1000用户组,dockerfile有规定(chown -R 1000 /your/home)
- 初始化jenkins服务
jenkins一直卡着 显示正在启动,请稍后
进入上面宿主外置目录 /your/home 修改 hudson.model.UpdateCenter.xml 文件中的"url"标签http://mirror.xmission.com/jenkins/updates/update-center.json
Jenkins插件安装失败处理方法
=安装失败出现的环境========
1.网络或墙的问题导致插件下载安装失败 修改 hudson.model.UpdateCenter.xml 文件中的"url"标签即可解决
2.因为Jenkins版本太低导致插件不支持。如下报错
手动更新版本
1.在服务器中下载jenkins的最新war包: wget http://mirrors.jenkins.io/war/latest/jenkins.war 2.将下载的war包cp至容器的usr/download目录中: docker cp jenkins.war ContainerId:/usr/download 3.进入容器: docker exec -it -u root ContainerId bash 4.查看容器中jenkins war包的位置,并备份原来的war包: whereis jenkins cd /usr/share/jenkins cp jenkins.war jenkinsBAK.war 5.将usr/dowanload下的包cp到/usr/share/jenkins下覆盖: cp /usr/download/jenkins.war /usr/share/jenkins 6.重启jenkins,更新到新版本: http://yourIP:8080/restart
jenkins部分全局配置
SMTP server:SMTP服务器,比如腾讯企业邮箱的SMTP服务器为smtp.exmail.qq.com。 Default Content Type:邮件内容格式,可选Plain text和HTML。 Default Recipients:默认的收件人列表,用逗号分隔。抄送或密送某个收件人可以在其邮箱前面加上cc:或bcc:。 Default Subject:默认的邮件标题。 Default Content:默认的邮件内容。 Enable Debug Mode:开启插件的Debug模式,我们会在日志里看到更多信息。 其他配置保持默认即可。
按钮高级设置,注意Default Triggers触发器设置
jenkins 项目构建配置
export BUILD_ID=dontkillme source /etc/profile #!/bin/bash echo "Restarting SpringBoot per_recharge Application" pid=`ps -ef | grep per_recharge-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then kill -9 $pid echo "关闭进程:"$pid fi echo "授予当前用户权限" chmod 777 /home/per_recharge-0.0.1-SNAPSHOT.jar echo "执行....." #java -jar /usr/local/miniprogram/miniprogram.jar nohup java -jar -Dspring.profiles.active=test per_recharge-0.0.1-SNAPSHOT.jar --server.port=8080 & pids=`ps -ef | grep per_recharge-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'` echo "新进程:"$pids echo "启动结束--------"
- war项目构建远程部署tomcat
在构建项目之前需要在tomcat服务端配置用户名和密码让jenkins访问并上传war
1.修改tomcat-uers.xml
<role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="123456" roles="tomcat,manager-gui,manager-script"/>
2.修改context.xml
<Context antiResourceLocking="true" antiJARLocking="true"> <context>
在构建之前使用ssh执行脚本清除之前的war包,下面时简单的脚本
#!/bin/sh tomcat_home=/home/tomcat7/apache-tomcat-7.0.92 export JAVA_HOME=/usr/java/jdk1.7.0_79 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin sh $tomcat_home/bin/shutdown.sh rm -rf $tomcat_home/webapps/qzsmk_card rm -rf $tomcat_home/webapps/qzsmk_card.war sh $tomcat_home/bin/startup.sh
Q.E.D.