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 

    再打包就不报错了

  • 相关阅读:
    C# 调试程序时如何输入命令行参数
    C# 连接和操作SQL SERVER数据库
    在C#中读写INI配置文件(转)
    Visual Studio 项目中添加include, lib, dll库文件(*.h,*.lib,*.dll)
    Android系统Recovery工作原理
    Windows服务创建及安装
    C# WinForm窗口最小化到系统托盘
    C#文件操作
    C# 调用Windows API实现两个进程间的通信
    Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)
  • 原文地址:https://www.cnblogs.com/labtabhub/p/12164201.html
Copyright © 2011-2022 走看看