Jenkins使用目录挂载实现自定义node版本

场景:研发同事需要一个指定版本的npm环境,但是现在使用的是docker部署的jenkins,在不新构建jenkins镜像的前提下,选择挂载方式解决。

1.下载nodejs 16版本的nodesource-nodejs.repo仓库脚本
 

cd /etc/yum.repos.d/
curl -sL https://rpm.nodesource.com/setup_16.x | bash -

如果执行下载nodesource-nodejs.repo没有反应

可尝试增加hosts解析后再进行下载

echo "104.22.5.26 rpm.nodesource.com" >>/etc/hosts

2.安装nodejs

yum install nodejs -y

node -v
npm -v

3.修改docker启动命令将node安装目录和二进制文件挂载到jenkins

docker run -d \
  -v /data/jenkins_home:/var/jenkins_home \
  -p 8080:8080 \
  -p 50000:50000 \
  -v $(which docker):/usr/bin/docker \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /usr/local/node16.20:/usr/local/node16.20 \
  -v /usr/bin/node:/usr/bin/node \
  --name jenkins \
  --restart=on-failure \
  -u 0 \
  --entrypoint "/bin/bash" \
  jenkins/jenkins \
  -c "rm -rf /usr/bin/npm && ln -s /usr/local/node16.20/bin/npm /usr/bin/npm && exec jenkins.sh"

进入容器验证node环境

node -v
npm -v

命令说明:

docker run -d \
  -v /data/jenkins_home:/var/jenkins_home \  

将宿主机上的 /data/jenkins_home 目录挂载到容器内的 /var/jenkins_home 目录,这样容器内的 Jenkins 数据会持久化到宿主机上。


  -p 8080:8080 \
  -p 50000:50000 \
  -v $(which docker):/usr/bin/docker \

宿主机上的 docker 二进制文件挂载到容器内的 /usr/bin/docker容器可以使用宿主机的 Docker 客户端


  -v /var/run/docker.sock:/var/run/docker.sock \

挂载宿主机的 Docker socket 到容器内,允许容器内的进程直接与 Docker 守护进程通信

  -v /usr/local/node16.20:/usr/local/node16.20 \

挂载宿主机上的 /usr/local/node16.20 目录到容器内的同名目录


  -v /usr/bin/node:/usr/bin/node \

挂载宿主机上的 /usr/bin/node 链接到容器内的 /usr/bin/node,多版本可以自定义


  --name jenkins \
  --restart=on-failure \
  -u 0 \

root 用户运行容器内的进程。


  --entrypoint "/bin/bash" \

使用 /bin/bash 作为新的入口,容器启动时,它会首先运行 /bin/bash 而不是默认的 jenkins.sh

  jenkins/jenkins \

镜像名称


  -c "rm -rf /usr/bin/npm && ln -s /usr/local/node16.20/bin/npm /usr/bin/npm && exec jenkins.sh"

容器内执行shell命令:rm -rf /usr/bin/npm && ln -s /usr/local/node16.20/bin/npm /usr/bin/npm&& exec jenkins.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/632653.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Udp_Tcp协议

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:Linux 目录 👉🏻再谈端口号pidof命令 👉🏻UDP协议报文的管理基于UDP协议的应用层协议 👉&#x1…

mysql 多表关联执行计划 mysql 多表关联优化

desc SELECT * FROM expense_application a left join expense_application_detail b on a.order_no b.order_no LIMIT 10; 和 explain SELECT * FROM expense_application a left join expense_application_detail b on a.order_no b.order_no LIMIT 10; 这两种写法是一样…

持续拥抱鲲鹏生态 星辰天合深化信创存储能力

近日,鲲鹏昇腾开发者大会与广电五舟“2024 智算中国行”北京站陆续召开,星辰天合持续拥抱鲲鹏生态,以重要的合作伙伴身份受邀参加,并在鲲鹏昇腾开发者大会上荣获“甄选解决方案最佳应用软件奖”,在广电五舟“2024 智算…

C++学习~~string类

1.STL简单介绍 (1)标准模版库,是C里面的标准库的一部分,C标准库里面还有其他的东西,但是我们不经常使用,我们经常使用的还是STL这个标准库部分。 (2)六大件:仿函数&…

Microsoft Threat Modeling Tool 使用(三)

Boundary(边界) 本文介绍信任边界,基于 SDL TM Knowledge Base (Core) 模版,这是一个通用的威胁建模模板,非常适合初学者和大多数威胁建模需求。 这些边界(Boundary)在微软威胁建模工具中用于表…

如何重启Windows系统上的Mysql服务

很久很久之前,我想把我的一台windows笔记本当比服务使用,当时还没有搞wsl, 试了vmware在局域网内总是断连。然后就直接在 windows系统上装了一个 windows版本的Mysql81。 有一天需要修改最大连接数, 费了挺大的劲终于找到了配置文件 my.ini…

在云服务器上运行StyleGAN3生成伪样本

首先是传入数据,这里我们不做赘述。 对于数据格式的裁剪,可以通过以下代码进行: from glob import glob from PIL import Image import os from tqdm import tqdm from tqdm.std import trangeimg_path glob(r"C:\Users\Administrato…

Windows Docker安装运行Nacos

#下载Nacos docker pull nacos/nacos-server #可以创建docker中nacos网络,如果以后要使用docker中的mysql存储nacos配置的话,本文使用本地机器mysql,暂用不到 docker network create nacos_network #暂时先运行docker docker run --nam…

python手写数字识别(PaddlePaddle框架、MNIST数据集)

python手写数字识别(PaddlePaddle框架、MNIST数据集) import paddle import paddle.nn.functional as F from paddle.vision.transforms import Compose, Normalizetransform Compose([Normalize(mean[127.5],std[127.5],data_formatCHW)]) # 使用tran…

农业四情监测站在农业生产中有哪些作用

TH-Q3农业四情监测站是一种先进的农业监测设备,可以对土壤、虫情、气象、苗情、孢子等生产环境状况进行实时动态监控,为农业生产提供全面的数据支持和决策依据。 该监测站通常包括土壤温度、湿度、PH值、电导率等土壤参数传感器,虫情监测仪、…

AI绘图Stable Diffusion,如何无损高清放大图片,保姆级教程建议收藏!

前言 我们在用 stable diffusion 制作AI图片时,默认生成图片的尺寸为512*512,即使是竖图一般也就是512*768,如果再把尺寸设置大一些,就会因为硬件算力不够而造成系统崩溃,今天就来跟大家聊一聊,如何将制作…

Sam Blackshear谈Move如何赋能开发者

Move编程语言提供了直观的编码体验,让开发者能够快速上手。Mysten Labs的联合创始人兼CTO Sam Blackshear创建了Move,这是一种用于编写智能合约的语言,更像传统编程语言,如JavaScript或Rust。 https://youtu.be/iYe_hG8Mzx8 视频…

利用if-else,while-do,case-end,的存储过程

DDL CREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT, -- 自增ID作为主键createDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 记录创建时间,默认为当前时间userName VARCHAR(255) NOT NULL, -- 用户名,不能为空phone VARCHAR(2…

加速大模型落地,阿里云大模型最新进展

今天在阿里云AI智领者峰会上,阿里云正式发布通义千问2.5,模型性能全面赶超GPT-4 Turbo,成为地表最强中文大模型。同时,通义千问最新开源的1100亿参数模型在多个基准测评收获最佳成绩,超越Meta的Llama-3-70B&#xff0c…

无人机摄影测量数据处理、三维建模及在土方量计算

原文链接:无人机摄影测量数据处理、三维建模及在土方量计算https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247603776&idx2&snd96440e116900a46a71c45ff77316896&chksmfa8217a7cdf59eb15da39dd6366378b98ca39b9c836b76a473ff292b67ee37a6ff6…

从Photoshop到AutoCAD,TeamOS在线预览全搞定:可道云TeamOS系统的在线预览功能深度体验

我们每天都要处理大量的文件,领导发过来的压缩包、同事发来的psd文件等,各种格式的文件杂乱又不好查阅…… 迫切需要一个能够在线预览、管理文件的平台。 初次搭建teamOS 可道云teamOS是一个企业级的在线文件管理平台,支持上百种格式的在线…

Pytest测试实战

Pytest测试框架是动态语言Python专用的测试框架,使用起来非常的简单,这主要得易于它的设计,Pytest测试框架具备强大的功能,丰富的第三方插件,以及可扩展性好,可以很好的和unittest测试框架能够结合起来在项…

启明云端ESP32-S3模组WT32-S3选型,Flash最大可选16MB,PSRAM最大可选8MB

使用ESP32-S3单芯片,可以完成语音连接屏控三合一功能。接下来给大家推荐一款ESP32-S3模组WT32-S3,Flash 最大可选 16MB,PSRAM 最大可选 8MB。核心芯片是ESP32-S3。 2.4GHz Wi-Fi(802.11b/g/n)Bluetooth 5(LE)模组,内置ESP32-S3系列芯片&#…

分析人工智能在智慧银行服务中的实际应用以及面临的挑战

一、引言 近年来,人工智能(AI)技术快速发展,其在金融领域,特别是智慧银行服务中的应用日益广泛。人工智能以其独特的数据处理能力、预测分析能力以及自动化决策能力,极大地提升了智慧银行的服务效率、降低了运营成本,并优化了客户体验。然而,人工智能在智慧银行服务中…

建模:3dmax

3Dmax 制作模型和动画(橘肉); RizomUV 对模型进行展UV(橘皮); Substance Painter 纹理手绘(给橘皮制定想要的皮肤); 1.基础 1.1可编辑多边形、可编辑样条线 体、面都需要…