jenkins流水线打包vue无权限

jenkins在使用npm命令进行拉取依赖时,创建目录会报错无权限,如下如所示

这是因为npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户权限非常低

若需要正常拉取依赖就需要在命令加上以下参数--unsafe-perm,这样打包时就不会切换用户,打包时用的是哪个用户就是哪个用户

npm install --unsafe-perm --registry=http://registry.npmmirror.com

### 若依框架中的流水线部署与CI/CD实现 若依(RuoYi)是一个基于Spring Boot和Vue.js的开源前后端分离快速开发平台,支持模块化设计、权限控制等功能。要在若依框架中实现CI/CD流水线部署,可以通过以下方式完成: #### 1. **持续集成(CI)** 在CI阶段,主要目标是对代码进行自动化构建和测试。以下是具体的实现方法: - 使用Git作为版本控制系统,存储若依项目的源码。 - 配置Jenkins或GitHub Actions等工具来监听代码仓库的变化[^2]。 - 编写`.gitlab-ci.yml`或类似的CI配置文件,定义构建过程。例如,在构建阶段执行Maven命令打包项目: ```bash mvn clean package -Dmaven.test.skip=true ``` 此命令会清理旧的构建产物并生成新的WAR/JAR包,同时跳过单元测试以加速构建过程。 对于测试部分,则可以启用JUnit或其他测试框架验证业务逻辑是否正常工作[^4]。 #### 2. **持续交付(CD)** 进入CD环节后,重点在于将已通过测试的应用程序安全可靠地推送到生产环境中去。具体措施如下: - 利用容器技术如Docker简化应用程序及其依赖项的一致性分发问题[^4]。创建一个Dockerfile描述如何构建镜像以及启动服务的方式: ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 该脚本指定基础镜像为Alpine Linux上的OpenJDK 8,并复制编译好的Jar文件至容器内部路径下最后设置入口点运行Java应用。 接着,在流水线里增加一步骤负责制作最新版别的Docker image并将它上传到私有Registry或者公共Hub当中以便后续拉取使用[^4]。 #### 3. **环境管理** 为了保障不同环境下变量差异不影响实际效果,应当引入参数化的机制处理敏感数据比如数据库连接字符串等等[^1]。借助Kubernetes Secrets或者其他专门的安全保管方案妥善保存这些机密资料防止泄露风险发生。 另外还需注意的是要针对各个特定场景定制专属profile从而满足多样需求下的灵活切换[^1]。 --- ### 示例代码片段展示完整的CI/CD流程定义 下面给出一段适用于若依项目的通用型Pipeline YAML模板供参考学习之用: ```yaml stages: - build - test - deploy variables: MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" build_job: stage: build script: - mvn clean install -DskipTests=true artifacts: paths: - target/*.jar test_job: stage: test script: - mvn verify deploy_job: only: - main stage: deploy script: - docker login -u $DOCKER_USER -p $DOCKER_PASSWORD - docker build -t your-repo-name/ruoyi:$CI_COMMIT_REF_NAME . - docker push your-repo-name/ruoyi:$CI_COMMIT_REF_NAME ``` 以上示例展示了从构建到最终发布的全过程管控思路。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值