当前位置: 首页 > news >正文

做卡盟网站厦门网络推广推荐

做卡盟网站,厦门网络推广推荐,ui网页设计高手,网站开发开题报告引言CentOS7系统使用docker-compose安装部署jenkins#xff0c;并实现前后端自动构建 记录一次工作中部署jenkins的真实经历#xff0c;总结了相关经验 1.准备环境 1.java 由于最新的jenkins需要jdk11以上才能支持#xff0c;而系统里的jdk是1.8的#xff0c;因此等jenkins安…CentOS7系统使用docker-compose安装部署jenkins并实现前后端自动构建 记录一次工作中部署jenkins的真实经历总结了相关经验 1.准备环境 1.java 由于最新的jenkins需要jdk11以上才能支持而系统里的jdk是1.8的因此等jenkins安装好后使用jenkins容器里自带的jdk17 2.maven centos7安装maven步骤 1.下载 apache-maven-3.6.3-bin.tar.gz 2.解压 3.配置环境变量 vim /etc/profile 4.刷新配置文件 source /etc/profile 5.验证 mvn -v 3.node centos7 使用nvm 下载16以上版本的node可能会遇到如下的报错 这里直接采用jenkins自动安装node 18 2.准备docker-compose.yml文件 version : 3 services:jenkins:user: rootrestart: alwaysimage: jenkins/jenkinscontainer_name: jenkinsenvironment:- TZAsia/Shanghaiports:- 10240:8080- 10241:50000expose:- 8080- 50000volumes:- /data/jenkins/jenkins_home/:/var/jenkins_home/- /data/nginx/html/:/data/nginx/html/- /data/nginx/htmldev/:/data/nginx/htmldev/- /var/run/docker.sock:/var/run/docker.sock- /usr/bin/docker:/usr/bin/docker- /data/maven/apache-maven-3.6.3:/data/maven/apache-maven-3.6.3- /root/.ssh:/root/.ssh/var/jenkins_home/ 这个是容器里默认的jenkins工作目录需要挂载出来/data/nginx/html/和/data/nginx/htmldev/ 分别对应后面前端项目pc端、移动端的dist存放目录配置于nginx中挂载出来是由于jenkins配置前端构建的时候需要配置nginx目录maven挂载刚刚安装的maven 3.执行docker-compose # 跳转到docker-compose.yml文件目录 cd /data/jenkinsll#执行 docker-compose up -d#查看运行状态 docker ps4.初始化jenkins 访问 ip:10240 jenkins后台 查找初始密码 安装插件 选择安装推荐的插件这里如果安装失败后续再手动切换源安装必要的插件即可 源https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 参考 docker安装jenkins并配置国内插件镜像地址_jenkins国内镜像-CSDN博客 Jenkins必备安装插件 - 知乎 (zhihu.com) 创建管理员账号 一直下一步 切换中文此时还有部分界面是英文 ​ 安装locale插件即可 参考 【jenkins】教你jenkins设置为中文_jenkins 中文插件2024年最新这操作真香_jenkins设置中文-CSDN博客 5.系统配置 凭据管理 添加全局凭据 git账号密码拉取代码 gitlab token用于监听git自动构建 安装gitlab插件 去gitlab生成token复制 添加gitlab api token凭证 全局工具配置 JDK 使用jenkins容器自带jdk17 maven 使用本地安装的maven刚刚已经挂载 nodejs 安装nodejs插件 勾选自动安装node版本选择18 系统配置 远程部署配置 安装远程部署插件 配置publish over ssh - SSH Servers 远程部署客户测试环境 远程部署公司开发环境 gitlab连接配置 6.新建构建任务 1.后端含备份、回滚 1.本机部署 举例构建测试服务器本地从git的develop分支拉取代码 选择自由风格 设置保留构建历史数量 配置参数化构建为了实现回滚 配置源码管理 构建环境 增加构建步骤 maven 备份 #!/bin/bash case $Status indeploy)echo Status:$Statuspath${WORKSPACE}/csms-admin/bak/${BUILD_NUMBER} #创建每次要备份的目录if [ -d $path ];thenecho The files is already exists elsemkdir -p $pathfi\cp -f ${WORKSPACE}/csms-admin/target/*.jar $path #将打包好的jar包备份到相应目录,覆盖已存在的目标echo bak ------------ Completing!;;rollback)echo Status:$Statusecho Version:$Versionecho BUILD_NUMBER:$BUILD_NUMBERv$Versionif [ $Version -eq 0 ]; thenv$(($BUILD_NUMBER - 2)) # 如果 $Version 是 0则赋值为 $BUILD_NUMBER - 2fiecho 回滚到版本--v:${v}cd ${WORKSPACE}/csms-admin/bak/${v} #进入备份目录\cp -f *.jar ${WORKSPACE}/csms-admin/target/ #将备份拷贝到程序打包目录中并覆盖之前的jar包;;*)exit;; esac构建新docker镜像并启动 cd ${WORKSPACE} docker stop csms-admin || true docker rm csms-admin || true docker rmi csms-admin || true docker build --build-arg profileActivetest --build-arg port8889 -t csms-admin . docker run -d -p 192.168.100.53:8889:8889 --name csms-admin csms-admin保留10个版本删除以前的备份 #!/bin/bash #rm_file14day ReservedNum10 #保留文件数量 rm_file_dir${WORKSPACE}/csms-admin/bak #需要删除文件的路径cd $rm_file_dir #进入文件夹 RootDir$(pwd) #当前文件路径 FileNum$(ls -l | grep ^d | wc -l) #查找文件夹数量 OldFile$(ls -rt | head -1) #找出最早文件夹 if [ $RootDir $rm_file_dir ];then #判断所在目录是否正确echo $RootDir echo $rm_file_dirwhile (($FileNum$ReservedNum)) #文件数超过设置变量才执行doecho Delete File:$RootDir/$OldFile #打印要删除的文件名称rm -rf $RootDir/$OldFile #删除文件let FileNum-- #变量自减操作OldFile$(ls -rt | head -1) #更新dmp最早文件done elseecho error file path #所在目录不对打印出路径错误 fi构建触发器 配置gitlab监听自动构建 打开gitlab 将 分别粘贴到gitlab-设置-集成 测试 git push自动触发jenkins构建 查看控制台 查看docker容器运行状态 docker ps后端启动成功 2.远程部署 举例构建开发服务器另一台服务器采用在本机打包、备份然后通过ssh连接远程开发服务器传送jar包并执行的方式 复制一个构建任务 修改所有的profile环境注释docker步骤 git触发器配置 同上 增加Send files or execute commands over SSH 步骤 #!/bin/bashJAR_HOME/data/jenkins/jenkins_home/workspace/csms-dev-develop/csms-admin/target WEB_HOME/data/csms/csms-admin#停止原来的服务 ps -ef | grep csms-admin | grep -v grep | awk {print $2} | xargs kill -9#替换原来的jar包 cd ${JAR_HOME} mv csms-admin-dev.jar csms-admin.jar cp -f csms-admin.jar ${WEB_HOME}#重启服务 cd ${WEB_HOME} nohup sh startup.sh startup.sh #!/bin/bash #1获取myjar的进程号 PID$(ps -ef|grep csms-admin| grep -v grep | awk {print $2}) #2启动myjar的函数 start(){nohup /data/java/jdk1.8.0_321/bin/java -Dspring.profiles.activedev -jar -Xms1024m -Xms2048m csms-admin.jar } #3判断1中获取的PID是否存在即判断myjar有没有启动if [ -z $PID ] then #4日志echo Start the csms-admin directly #5,myjar之前没有启动的话,这里直接调用start函数start else #6,myjar之前启动过且进程依然存活则kill掉然后调用start函数echo kill the existing csms-admin process firstly.kill -9 $PIDecho $PID has been killedstart fi2.前端 由于nginx部署在开发服务器非jenkins所在服务器所以前端部署都为远程部署 1.PC端远程部署 自由风格 同上 丢弃旧的构建 同上 源码管理 同上 构建触发器 同上 构建环境 构建步骤 npm install rm -rf ${WORKSPACE}/dist npm run build:dev #本机部署则去掉下面的ssh步骤这里加上下面的语句 #rm -rf /data/csms/csms-web/html #mkdir -p /data/csms/csms-web/html #cp -rf ${WORKSPACE}/dist /data/csms/csms-web/html增加Send files or execute commands over SSH 步骤 #!/bin/bashDIST_HOME/data/jenkins/jenkins_home/workspace/csms-vue-test-dev-pc HTML_HOME/data/csms/csms-web/test/html#覆盖原来的dist cp -rf ${DIST_HOME}/dist/* ${HTML_HOME}/dist2.移动端远程部署 构建步骤 ssh #!/bin/bashDIST_HOME/data/jenkins/jenkins_home/workspace/csms-vue-test-dev HTML_HOME/data/csms/csms-app/test/html#覆盖原来的dist cp -rf ${DIST_HOME}/mobiled_dist/* ${HTML_HOME}/mobiled_dist其他步骤同PC 7.在jenkins上编写maven的setting文件 有的时候需要临时改下maven的setting文件或者想编写多份setting文件给不同的构建任务去使用可以在jenkins上直接进行配置 添加配置文件 参考 PS这里没有这个选项的需要下载插件Jenkins 配置文件管理插件 Config File Provider_jenkins config file provider-CSDN博客 全局配置 到构建任务里配置 8.后端项目Dockerfile示例 本文的后端项目对应的Dockerfile可参考使用一般放在项目的根目录下 # 基础镜像 FROM openjdk:8-jre# 维护者信息 MAINTAINER asusENV LANGzh_CN.UTF8 ENV LC_ALLzh_CN.UTF8# 设置容器时区为当前时区 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ echo Asia/Shanghai /etc/timezone# /tmp 目录作为容器数据卷目录SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录任何向 /tmp 中写入的信息不会记录进容器存储层 # 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录 VOLUME /tmp# 复制主机文件至镜像内复制的目录需放置在 Dockerfile 文件同级目录下 ADD csms-admin/target/csms-admin-*.jar csms.jar# 动态参数 ARG profileActivedev ENV profileActive ${profileActive}ARG port8881 ENV port ${port}# 容器启动执行命令 ENTRYPOINT [java, -Xms256M,-Xmx1224M,-Xmn256M,-Xss256K,-Duser.timezoneGMT8, -Djava.security.egdfile:/dev/./urandom, -Dspring.profiles.active${profileActive}, -jar, /csms.jar]# 声明容器提供服务端口 EXPOSE ${port}PS上面展示的自动构建是每次都删除原来的镜像和容器重新构建镜像其实也可以Dockerfile里不ADD jar包然后将容器里放jar包的目录在 run 这个镜像容器的时候挂载出来这样只需要构建一次镜像创建一次容器后面jar包更新了只需要重启容器即可。 9.Jenkins新增用户并根据项目分配权限 参考 jenkins增加用户,并配置权限,保姆式教学_jenkins创建用户并添加权限-CSDN博客 Jenkins—jenkins新增用户且配置权限-CSDN博客 10.踩坑记录 1.由于lombok版本过低导致Maven编译失败 在构建任务中jdk指定的是jenkins里自带的jdk17项目中maven编译指定的jdk是1.8这里是下图报错的根本原因但是之前其他构建任务也是这样配置的还是正常编译最终在网上查询相关博客改了lombok版本才得以解决 参考项目install的时候报错“module jdk.compiler does not “opens com.sun.tools.javac.processing“ to unnamed modul 修改lombok版本为最新版本能支持jdk17
http://www.hkea.cn/news/14348986/

相关文章:

  • 深圳企业网站推广北京建设工程二级市场网站
  • 做网站百度收录计算机网站开发是那个语言
  • 高端网站开发公司西安十强广告公司名单
  • 学习建网站玩网站建设学习山西省运城市
  • 网站推广公司jq网站特效插件
  • 芦苞建网站公司网站搭建公司官网
  • 有特色的企业网站网站开发属于哪个税收分类
  • 丹麦网站后缀wordpress实现ajax
  • 招一个程序员可以做网站吗湖南中核建设工程公司官方网站
  • 一起来做网站会员wordpress主题
  • 建设网站公司那里好wordpress wpzoom
  • 弄几个的网站徐州网站建设技术
  • asp程序设计做网站网站建设本地还是外地
  • 图片版小说网站源码太原市网站制作
  • 建网站卖虚拟资源需要怎么做wap网站开发培训
  • 深圳网站建设hi0755网站首页三张海报做多大
  • 邵阳市住房和城乡建设局网站2019做哪个网站赚钱
  • 阿里云如何做网站2021年最火的网页游戏
  • 网站尺寸规范网站建设分金手指专业十四
  • 建设网站企业专业服务乐山市建设银行网站
  • 网页制作网站源码如何自己做购物网站
  • 网站服务器多少钱一年惠阳市网站建设
  • 做网站图片用什么格式最好怎样进行网站板块建设
  • 香河县做网站网站建设为什么不清晰
  • 邯郸企业建站网络公司运营是干啥的
  • 学校网站 aspx源码多网站怎么做seo
  • 婚庆公司网站模板下载百度榜
  • ui设计师个人简历四川大学网站seo诊断报告
  • wordpress文章行距很大搜索引擎优化工作主要做好哪些方面
  • 大宗商品交易平台上市公司seo推广必须要做的9种方法