最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

gitlab-runner中搭建nvm、nrm以及優(yōu)化maven打包方式

 更新時(shí)間:2024年11月12日 15:07:25   作者:一只牛博  
文章描述了如何在GitLab Runner上配置NVM、NRM,并優(yōu)化Maven打包過程,通過上述配置和優(yōu)化,作者將Maven打包時(shí)間從三分鐘縮短到不到40秒

gitlab-runner搭建nvm、nrm及優(yōu)化maven打包

因?yàn)間itlab-runner作為服務(wù)器的一個(gè)用戶,所以它是不能具備所有root權(quán)限的,對(duì)于nvm、nrm也是,除非將其安裝到非~目錄下

git、gitlab-runner

CentOS 7上的GitLab Runner,讓你的項(xiàng)目加速奔跑

如何以gitlab-runner執(zhí)行

sudo -u gitlab-runner -i

sudo -u gitlab-runner -i 是一個(gè) Linux 命令,它的含義可以分解如下:

  • sudo:表示以超級(jí)用戶(root)的權(quán)限運(yùn)行接下來的命令。sudo 命令允許你以其他用戶的身份運(yùn)行命令。
  • -u gitlab-runner:指定要以哪個(gè)用戶的身份來運(yùn)行命令。在這個(gè)例子中,我們指定了 gitlab-runner 用戶。這樣后續(xù)的命令就會(huì)以 gitlab-runner 用戶的權(quán)限來執(zhí)行。
  • -i:表示以登錄 shell 模式啟動(dòng)。-i 會(huì)讓你切換到指定用戶的 home 目錄,并讀取該用戶的登錄 shell 配置文件(如 .bash_profile 或 .profile),相當(dāng)于你以該用戶身份登錄了一次系統(tǒng)。

組合的意義

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

  • 以 gitlab-runner 用戶的身份,以登錄 shell 模式運(yùn)行一個(gè)交互式會(huì)話(也就是進(jìn)入 gitlab-runner 用戶的 shell)。
  • 執(zhí)行這個(gè)命令后,你的命令提示符會(huì)切換到 gitlab-runner 用戶的上下文,并且當(dāng)前目錄也會(huì)切換到 gitlab-runner 用戶的 home 目錄。此時(shí),你就可以以 gitlab-runner 用戶的權(quán)限執(zhí)行接下來的命令,類似于你直接以 gitlab-runner 用戶登錄。

應(yīng)用場景

  • 檢查用戶權(quán)限:使用 gitlab-runner 用戶身份來檢查是否能訪問某些文件或執(zhí)行某些命令。
  • 配置環(huán)境:在用戶的 home 目錄中配置 .bashrc 或 .bash_profile,以確保用戶登錄后有正確的環(huán)境變量配置。
  • 調(diào)試 GitLab Runner 問題:如果 gitlab-runner 用戶在 GitLab CI/CD 中無法正確執(zhí)行一些命令,可以通過切換到該用戶身份來手動(dòng)測試命令的執(zhí)行情況。

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

或者通過添加以下內(nèi)容到 ~/.bashrc 文件中,以便每次啟動(dòng)終端時(shí)自動(dòng)加載:

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為版本號(hào)
nvm install 14.15.1

下載nrm

npm install -g nrm

下載成功截圖

上面雖然是在系統(tǒng)中搭建的,但是在gitlab-runner中搭建方式也是一樣的

注意:在編寫gitlab-ci.yml的時(shí)候要執(zhí)行 source ~/.bashrc

build:
  stage: build
#  image: node:16  # 使用 Node.js 14 鏡像作為構(gòu)建環(huán)境
  script:
    - source ~/.bashrc # 自動(dòng)加載配置文件
    - npm install  # 安裝項(xiàng)目依賴
    - npm run build  # 執(zhí)行構(gòu)建命令,生成靜態(tài)文件
    - tar -czf public.tar.gz -C public .  # 將 public 目錄下的內(nèi)容打包為 public.tar.gz
  artifacts:
    paths:
      - public.tar.gz  # 將打包后的文件作為 artifacts,以供后續(xù)階段使用
  tags:
#    - saas-linux-small-amd64
    - acowbo-node

優(yōu)化maven

優(yōu)化前大概發(fā)一次版本需要三分鐘,優(yōu)化后僅需要不到40s

這里給大家提供一個(gè)思路

優(yōu)化拉依賴(如果你沒有本地倉庫的話,就會(huì)每次都要拉取線上的依賴,非常費(fèi)時(shí)間)優(yōu)化打包(如果你的項(xiàng)目很大,這時(shí)候就要想優(yōu)化打包了,因?yàn)閷?duì)于不同服務(wù)器的文件傳輸,也是很費(fèi)時(shí)間的)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker部署Node.js+Playwright項(xiàng)目并實(shí)現(xiàn)瀏覽器截圖、打印和下載功能

    Docker部署Node.js+Playwright項(xiàng)目并實(shí)現(xiàn)瀏覽器截圖、打印和下載功能

    在現(xiàn)代前端/自動(dòng)化測試項(xiàng)目中,Playwright 常用于瀏覽器自動(dòng)化操作,如截圖、打印和下載 PDF,本文詳細(xì)介紹如何在 Linux 環(huán)境下使用 Docker 部署 Node.js + Playwright 項(xiàng)目,并對(duì) Dockerfile、docker-compose 和自動(dòng)化部署腳本逐行解析,需要的朋友可以參考下
    2025-10-10
  • 淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn)

    淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn)

    本文主要介紹了淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 基于VS Code的Docker調(diào)試環(huán)境搭建過程

    基于VS Code的Docker調(diào)試環(huán)境搭建過程

    本文詳細(xì)介紹了如何在VSCode中配置和使用Docker容器進(jìn)行Autoware項(xiàng)目的開發(fā)調(diào)試,通過安裝Docker和VSCode插件,配置開發(fā)容器,掛載本地目錄,以及使用colcon編譯項(xiàng)目,使得開發(fā)環(huán)境更加高效和一致
    2026-02-02
  • Docker實(shí)現(xiàn)自定義jkd鏡像上傳阿里云

    Docker實(shí)現(xiàn)自定義jkd鏡像上傳阿里云

    本文詳解基于Ubuntu構(gòu)建JDK8自定義Docker鏡像及上傳至阿里云倉庫的流程,涵蓋Dockerfile編寫、鏡像構(gòu)建、容器運(yùn)行、環(huán)境變量配置,以及阿里云賬戶準(zhǔn)備、鏡像推送與測試等關(guān)鍵步驟
    2025-08-08
  • 從零搭建docker私有倉庫的步驟

    從零搭建docker私有倉庫的步驟

    這篇文章主要介紹了從零搭建docker私有倉庫的步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解Docker容器數(shù)據(jù)卷

    詳解Docker容器數(shù)據(jù)卷

    這篇文章主要介紹了Docker容器數(shù)據(jù)卷的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 使用Docker搭建MySQL主從數(shù)據(jù)庫的方法步驟

    使用Docker搭建MySQL主從數(shù)據(jù)庫的方法步驟

    本文主要介紹了使用Docker搭建MySQL主從數(shù)據(jù)庫的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • docker終端中如何修改時(shí)區(qū)

    docker終端中如何修改時(shí)區(qū)

    解決Docker時(shí)區(qū)問題需檢查容器是否包含Shanghai時(shí)區(qū)文件,若無則從主機(jī)復(fù)制,通過命令驗(yàn)證時(shí)區(qū)設(shè)置,確保正確,總結(jié)為個(gè)人經(jīng)驗(yàn),供他人參考
    2025-07-07
  • 使用Docker部署pwgen簡單密碼生成器

    使用Docker部署pwgen簡單密碼生成器

    pwgen 主要用于生成隨機(jī)密碼或短語密碼,本文就來介紹一下使用Docker部署pwgen簡單密碼生成器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • 如何實(shí)現(xiàn)不同網(wǎng)段docker容器網(wǎng)絡(luò)互通

    如何實(shí)現(xiàn)不同網(wǎng)段docker容器網(wǎng)絡(luò)互通

    文章講解了通過Docker bridge網(wǎng)絡(luò)實(shí)現(xiàn)容器間通信的方法,包括關(guān)閉防火墻、拉取busybox鏡像、創(chuàng)建容器并測試IP連通性,使用--link參數(shù)連接容器,以及跨網(wǎng)段通信的配置技巧
    2025-07-07

最新評(píng)論

凯里市| 军事| 图片| 长泰县| 西畴县| 锡林浩特市| 鸡西市| 肇庆市| 八宿县| 屏东市| 绥江县| 庆安县| 荥阳市| 恩施市| 灵寿县| 平泉县| 海丰县| 天全县| 鄯善县| 扎鲁特旗| 桓台县| 大冶市| 寿光市| 武义县| 安庆市| 宁夏| 芦山县| 凭祥市| 图们市| 莱西市| 咸丰县| 葫芦岛市| 陈巴尔虎旗| 界首市| 巴楚县| 边坝县| 夏津县| 宜兰县| 堆龙德庆县| 巴东县| 高邮市|