gitlab-runner中搭建nvm、nrm以及优化maven打包

news/2024/11/8 19:49:25/

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

🎏:你只管努力,剩下的交给时间

🏠 :小破站

gitlab-runner中搭建nvm、nrm以及优化maven打包

    • git、gitlab-runner
    • 如何以gitlab-runner执行
    • nvm、nrm
      • 搭建nvm
      • 加载nvm
      • 下载node
      • 下载nrm
      • 下载成功截图
    • 优化maven

因为gitlab-runner作为服务器的一个用户,所以它是不能具备所有root权限的,对于nvm、nrm也是,除非将其安装到非~目录下

gitlabrunner_14">git、gitlab-runner

CentOS 7上的GitLab Runner,让你的项目加速奔跑

gitlabrunner_18">如何以gitlab-runner执行

sudo -u gitlab-runner -i

sudo -u gitlab-runner -i 是一个 Linux 命令,它的含义可以分解如下:

​ • sudo:表示以超级用户(root)的权限运行接下来的命令。sudo 命令允许你以其他用户的身份运行命令。

​ • -u gitlab-runner:指定要以哪个用户的身份来运行命令。在这个例子中,我们指定了 gitlab-runner 用户。这样后续的命令就会以 gitlab-runner 用户的权限来执行。

​ • -i:表示以登录 shell 模式启动。-i 会让你切换到指定用户的 home 目录,并读取该用户的登录 shell 配置文件(如 .bash_profile 或 .profile),相当于你以该用户身份登录了一次系统。

组合的意义

sudo -u gitlab-runner -i 命令的完整含义就是:

gitlab-runner 用户的身份,以登录 shell 模式运行一个交互式会话(也就是进入 gitlab-runner 用户的 shell)。

执行这个命令后,你的命令提示符会切换到 gitlab-runner 用户的上下文,并且当前目录也会切换到 gitlab-runner 用户的 home 目录。此时,你就可以以 gitlab-runner 用户的权限执行接下来的命令,类似于你直接以 gitlab-runner 用户登录。

应用场景

​ • 检查用户权限:使用 gitlab-runner 用户身份来检查是否能访问某些文件或执行某些命令。

​ • 配置环境:在用户的 home 目录中配置 .bashrc 或 .bash_profile,以确保用户登录后有正确的环境变量配置。

​ • 调试 GitLab Runner 问题:如果 gitlab-runner 用户在 GitLab CI/CD 中无法正确执行一些命令,可以通过切换到该用户身份来手动测试命令的执行情况。

nvm、nrm

搭建nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.6/install.sh | bash

我用的是0.39.6版本的,目前最新的是0.40.1

加载nvm

在安装完成后,你需要加载 NVM。你可以通过以下命令来激活 NVM:

source ~/.nvm/nvm.sh

或者通过添加以下内容到 ~/.bashrc 文件中,以便每次启动终端时自动加载:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

保存并退出后,可以通过以下命令来使配置生效:

source ~/.bashrc

下载node

# 其中14.15.1为版本号
nvm install 14.15.1

下载nrm

npm install -g nrm

下载成功截图

image-20241025152640782

上面虽然是在系统中搭建的,但是在gitlab-runner中搭建方式也是一样的

注意:在编写gitlab-ci.yml的时候要执行 source ~/.bashrc

build:stage: build
#  image: node:16  # 使用 Node.js 14 镜像作为构建环境script:- source ~/.bashrc # 自动加载配置文件- npm install  # 安装项目依赖- npm run build  # 执行构建命令,生成静态文件- tar -czf public.tar.gz -C public .  # 将 public 目录下的内容打包为 public.tar.gzartifacts:paths:- public.tar.gz  # 将打包后的文件作为 artifacts,以供后续阶段使用tags:
#    - saas-linux-small-amd64- acowbo-node

maven_117">优化maven

image-20241025180444436

优化前大概发一次版本需要三分钟,优化后仅需要不到40s

这里给大家提供一个思路

  • 优化拉依赖(如果你没有本地仓库的话,就会每次都要拉取线上的依赖,非常费时间)优化打包(如果你的项目很大,这时候就要想优化打包了,因为对于不同服务器的文件传输,也是很费时间的)

http://www.ppmy.cn/news/1545438.html

相关文章

【原创】java+ssm+mysql收纳培训网系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

AMD显卡低负载看视频掉驱动(chrome edge浏览器) 高负载玩游戏却稳定 解决方法——关闭MPO

2024.11.7更新 开关mpo ulps 感觉都没啥用,插核显输出也是,只是平时不掉,该玩游戏还得闪退。 今天又装了六七次驱动,现在开着mpo和ulps的情况下居然稳定? 再观望一下,有点摸不着头脑。等11月新驱动. 问题…

【Ajax】跨域

文章目录 1 同源策略1.1 index.html1.2 server.js 2 如何解决跨域2.1 JSONP2.1.1 JSONP 原理2.1.2 JSONP 实践2.1.3 jQuery 中的 JSONP 2.2 CORS2.2.1 CORS实践 3 server.js 1 同源策略 同源策略(Same-Origin Policy)最早由 Netscape 公司提出,是浏览器的一种安全策…

【Axure高保真原型】PDF阅读器

今天和大家分享PDF阅读器的原型模板,我们点击左侧的PDF,点击后右侧能看到这个PDF的内容,每个PDF都可以点击查看,如果PDF内容太多,我们也可以通过鼠标滚动来查看。这个模板是用中继器制作的,所以使用也很方便…

如何移除ZIP文件密码?3种解决方法!

在共享和处理ZIP文件时,密码保护虽然增加了文件的安全性,但有时也会带来不便。若不再需要密码保护,如何将ZIP文件的密码移除呢?我们可以通过解压再压缩、解密直接去除密码,以及找回遗失密码三种方法来解决密码问题&…

win11安装最新rabbitmq

1、安装Erlang 注意:RabbitMQ需要Erlang支持,所以要先安装Erlang,安装RabbitMQ版本需要与之对应的Erlang版本才行查看对应的RabbitMQ对应的Erlang 版本下载Erlang 2、安装RabbitMQ 下载 RabbitMQ Erlang和RabbitMQ安装过程一直点下一步…

3种最难学习和最容易学习的 3 种编程语言

无论您是想改变职业方向还是扩展程序员的技能,您选择学习的语言都会显着影响您的时间投入和前景。 一些语言使用熟悉的语法,欢迎为繁重的工作提供最少的代码命令,并且是开源的,具有有用的开发人员社区,可指导用户充分利…

Go的环境搭建以及GoLand安装教程

目录 一、开发环境Golang安装 二、配置环境变量 三、GoLand安装 四、Go 语言的 Hello World 一、开发环境Golang安装 官方网址: The Go Programming Language 1. 首先进入官网,点击Download,选择版本并进行下载: ​ ​ 2. …