zoukankan      html  css  js  c++  java
  • centOS7 搭建jenkins 自动部署angular5项目 学习教程

    首先安装jenkins不多说,网上教程到处都是。

    下面记录下过程中我遇到的问题。

    1禁用Jenkins的日志保存

    Jenkins的日志文件非常大,不禁用的话,服务器磁盘很快就会满。

    在jenkins的设置面板  设置 -》 系统日志 -》日志级别 -》配置级别

    添加一条日志配置   javax.jmdns   off  ,重启jenkins

    2 安装支持gitlab插件

    jenkins若想从gitlab或github上自动拉代码打包部署,是需要插件支持的。如果刚装完jenkins没装插件,会找不到添加git仓库的地方。以gitlab为例,需要安装gitlab 的插件。

    在系统设置中,插件管理,搜索,安装就行

    安装完需要重启。jenkins的重启和停止,只需要在浏览器地址localhost:restart,或者stop

    3 过程中遇到的几个问题

    1 安装完成,设置好环境之后,构建是选择的是shell命令,一开始build时,总提示npm命令找不到,我这里打包的是angular项目。

    百度了下,是环境变量的问题。

    在终端中输入echo $PATH 找到环境变量

    在jenkins中配置系统的环境变量 ,位置是系统设置->Global Properties

    2 配置好后,又说需要一个终端来执行命令。网上找博客说是shell命令分交互式,非交互式,登录式,非登陆式。作为一个菜鸡,我还没搞懂这个,别人博客上说shell脚本前面加这个就可以。

    #!/bin/bash -ilex 

    加上这个好像也不行,找了会百度,又说要jenkins要用root用户来执行。配置如下

    先修改jenkins配置文件的用户  文件是  /etc/sysconfig/jenkins

    将$JENKINS_USER修改为 root

    再设置下jenkins相关文件夹权限

    chown -R root:root /var/lib/jenkins

    chown -R root:root /var/cache/jenkins

    chown -R root:root /var/log/jenkins

    重启下jenkins,查看jenkins用户

    ps -ef | grep jenkins # 若显示为root用户,则表示修改完成

    3 弄完之后,确实可以执行shell脚本了,但是执行npm run build打包时报错了,原因是git上放的是window系统的node_modules

    依赖包,拉到linux系统上,build报错,估计是node_modules底层文件两个系统有区别。按照提示说要执行下面命令

    npm rebuild node-sass --force 

    加上改命令之后,又报错了,错误如下

    10:34:49 Unable to save binary /var/lib/jenkins/workspace/angualrTest/node_modules/node-sass/vendor/linux-x64-57 : { Error: EACCES: permission denied, mkdir '/var/lib/jenkins/workspace/angualrTest/node_modules/node-sass/vendor/linux-x64-57'
    10:34:49     at Object.fs.mkdirSync (fs.js:885:18)
    10:34:49     at Function.sync (/var/lib/jenkins/workspace/angualrTest/node_modules/mkdirp/index.js:71:13)
    10:34:49     at checkAndDownloadBinary (/var/lib/jenkins/workspace/angualrTest/node_modules/node-sass/scripts/install.js:114:11)
    10:34:49     at Object.<anonymous> (/var/lib/jenkins/workspace/angualrTest/node_modules/node-sass/scripts/install.js:157:1)
    10:34:49     at Module._compile (module.js:652:30)
    10:34:49     at Object.Module._extensions..js (module.js:663:10)
    10:34:49     at Module.load (module.js:565:32)
    10:34:49     at tryModuleLoad (module.js:505:12)
    10:34:49     at Function.Module._load (module.js:497:3)
    10:34:49     at Function.Module.runMain (module.js:693:10)
    10:34:49   errno: -13,
    10:34:49   code: 'EACCES',
    10:34:49   syscall: 'mkdir',

    原因是npm命令创建文件夹失败,没权限,真不知道为啥。最后找到解决方法,npm命令前加上这两句

    npm config set user 0 
    npm config set unsafe-perm true 

    再打包就不报错了

  • 相关阅读:
    27 Spring Cloud Feign整合Hystrix实现容错处理
    26 Spring Cloud使用Hystrix实现容错处理
    25 Spring Cloud Hystrix缓存与合并请求
    24 Spring Cloud Hystrix资源隔离策略(线程、信号量)
    23 Spring Cloud Hystrix(熔断器)介绍及使用
    22 Spring Cloud Feign的自定义配置及使用
    21 Spring Cloud使用Feign调用服务接口
    20 Spring Cloud Ribbon配置详解
    19 Spring Cloud Ribbon自定义负载均衡策略
    18 Spring Cloud Ribbon负载均衡策略介绍
  • 原文地址:https://www.cnblogs.com/labtabhub/p/12164201.html
Copyright © 2011-2022 走看看