kubeSphere DevOps自定义容器 指定nodejs版本

✨✨✨✨✨✨

  • 🎀前言
  • 🎁基于内置镜像构建
  • 🎁把镜像添加基础容器中
  • 🎁检查容器是否配置成功
  • 🎁不生效的原因排查
  • 🎁按步骤执行如下命令

🎀前言


  • 由于我本地的开发环境node是16.18.1,而自带容器node的版本是9.11.2
    • 内置支持容器

在这里插入图片描述

🎁基于内置镜像构建


  1. 基于原有镜像构建,需要用原有镜像的环境
FROM kubesphere/builder-nodejs:v3.2.0
RUN npm cache clean -f
RUN npm install -g n
RUN n 16.18.1
  1. 添加dockerfile
#然后把刚才的脚本复制进去
vim Dockerfile
  1. 打包镜像
# -t为指定构建镜像的名字和版本,格式为'name:tag',-f为指定其他目录下的DockerFIle文件。
#我们看到最后还有一个 . 是为了让 Docker 到当前本地目录去寻找 Dockerfile 文件。
docker build -t [自定义镜像名]:latest -f Dockerfile .
  1. 推送到私有仓库, 因为我这里用的阿里云镜像仓库
docker login --username=自己的用户名 registry.cn-hangzhou.aliyuncs.com
docker images
#ImageId为上一个命令查出来的,你要上传到私服的镜像的id;[自定义镜像名]:只能是一个名字,不能含目录,例如jenkins/jenkinsfile,会导致传不上去
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/[自己定义的仓库的命名空间]/[自定义镜像名]:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/[自己定义仓库的命名空间]/[自定义镜像名]:[镜像版本号
#清除游离镜像
docker image prune
#清理未使用过的镜像和悬空镜像
docker system prune -a
#清除未使用的数据卷,末尾加上-f不用输入yes
docker volume prune

🎁把镜像添加基础容器中


  • 搜索jenkins-casc-config 图片里的打错了,懒得改了复制这个即可
    在这里插入图片描述
  • 在弹出的对话框中,搜寻至 data.jenkins_user.yaml:jenkins.clouds.kubernetes.templates
    • 请注意空格和格式仔细检查
    • 下方并输入以下代码,点击确定。以下代码建议不用修改
- name: "nodejs-nodejs16" # 自定义 Jenkins Agent 的名称。label: "nodejs nodejs16" # 自定义 Jenkins Agent 的标签。若要指定多个标签,请用空格来分隔标签。inheritFrom: "nodejs" # 该自定义 Jenkins Agent 所继承的现有容器组模板的名称。containers:- name: "nodejs" # 该自定义 Jenkins Agent 所继承的现有容器组模板中指定的容器名称。image: "这个就是刚才阿里云镜像仓库的地址" # 我这个是私有仓库,建议自行构建镜像

在这里插入图片描述

🎁检查容器是否配置成功


出现配置可选即为成功,懒得再去截图了,这里用JDK11的,逻辑是一样的
在这里插入图片描述

🎁不生效的原因排查


  • 找到ks-jenkins服务
    在这里插入图片描述

🎁按步骤执行如下命令


注:有些版本是没有jenkins_user.yaml

cd /var/jenkins_home/casc_configs
cat jenkins.yaml
cat jenkins_user.yaml
  • 按照查看配置文件是否生效,自己改动的配置是否已经在里面了,如果已经存在里面还是未生效兼容重启容器在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE项目目录与运行流程(VScode)

各目录对应名称含义 main.js(导入App.vue,基于App.vue创建结构渲染index.html) //核心作用:导入App.vue,基于App.vue创建结构渲染index.html//1.导入Vue核心包 import Vue from vue//2.导入App.vue根组件 import App f…

MSB20M-ASEMI小功率家电专用MSB20M

编辑:ll MSB20M-ASEMI小功率家电专用MSB20M 型号:MSB20M 品牌:ASEMI 封装:UMSB-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):2A 功率(Pd):50W 芯片个数:4 引…

20240122面试练习题10

1. Redis为什么执行这么快? 二、Redis为什么这么快? 1、完全基于内存,数据存在内存中,绝大部分请求是纯粹的内存操作,非常快速,跟传统的磁盘文件数据存储相比,避免了通过磁盘IO读取到内存这部分…

微软 AD |域控制器 | 组件 | 域服务 | 对象解析

介绍 Active Directory(AD),是微软的目录服务,提供强大的功能和管理体系,用于组织管理和安全存储网络上的资源和用户、计算机、服务对象等信息。 AD 功能: 身份验证和访问控制: 提供集中式的身…

Kubernets Deployment详解

因为Pod生命周期是短暂的,一旦运行完成则立即回收,且涉及Pod的创建、自愈、删除等操作比较复杂,所以很少在Kubernetes中直接使用Pod。而是使用更高级的称为Controller(控制器)的抽象层,来完成对Pod的创建、…

为什么时序逻辑电路会落后一拍?

1、时序逻辑电路落后一拍&#xff1f; FPGA初学者可能经常听到一句话&#xff1a;“时序逻辑电路&#xff0c;或者说用 < 输出的电路会延迟&#xff08;落后&#xff09;一个时钟周期。”但在仿真过程中经常会发现不符合这一“定律”的现象–明明是在仿真时序逻辑&#xff…

工业4.0开放平台通信 统一架构OPC UA的一种测试方法

工业4.0和工业物联网&#xff08;Industrial Internet of Things, IIoT&#xff09;的核心挑战在于设备、机器以及来自不同行业服务之间的安全和标准化的数据和信息交换。 2016年11月工业4.0平台发布了指导纲要《工业4.0产品需要实现哪些准则》&#xff0c;即对于所有位于工业…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-Tag标签管理实现

锋哥原创的SpringbootLayui python222网站实战&#xff1a; python222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火…

1174:长整数排序(指针专题)

题目描述 长整数排序。输入n 然后输入n个位数不超过100位的大整数&#xff0c;输入的整数可能含有前导0。将这n个长整数排序后输出&#xff0c;输出不含前导0。int greater(char *s1, char *s2){若s1指向的整数大于s2指向的整数&#xff0c;返回一个正整数;若s1指向的整数小于s…

看门狗定时器

1. 看门狗 看门狗: 用于设备在 程序异常(死机) 时 可以自动重启设备 实现原理: 通过定时器 进行定时 , 在定时器时间结束前 进行 "喂狗" 重置定时器时间 若时间到,还没有"喂狗",系统重启 本质就是一个定时器, 如何定时? 定时器 本质是对 晶振时钟进行 计…

Leetcode—144. 二叉树的前序遍历【简单】

2023每日刷题&#xff08;九十六&#xff09; Leetcode—144. 二叉树的前序遍历 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr…

物业app开发成功案例:如何满足用户需求

在当今数字化时代&#xff0c;物业管理已经不再是一个简单的领域。随着智能手机的普及和移动互联技术的发展&#xff0c;许多物业管理公司纷纷投入物业App开发&#xff0c;以提升管理效率、改善用户体验。本文将介绍一个成功的案例&#xff0c;探讨如何满足用户需求。 物业App…

vue —— h函数的学习与使用

文章目录 一、h函数是什么&#xff1f;二、h函数格式说明及使用示例1&#xff1a;简单创建一个VNode&#xff08;vue3&#xff09;示例2&#xff1a;vue2中h函数用法示例3&#xff1a;vue3中h函数的用法vue2和vue3中h函数的区别&#xff1f; 三、h函数实现原理四、h函数常用场景…

800G光传输网络中的相干调制与PAM4技术

在800G光传输网络架构中&#xff0c;相干调制技术和PAM4&#xff08;四电平脉冲幅度调制&#xff09;技术各具优势&#xff0c;分别针对不同应用场景提供高效解决方案。 相干调制是高级光通信的核心技术之一&#xff0c;它通过精密操控光载波的频率、相位和振幅来编码信息&…

HMI-Board以太网数据监视器(二)MQTT和LVGL

E ∫ d E ∫ k d q r 2 k L ∫ d q r 2 E \int dE \int \frac{kdq}{r^2} \frac{k}{L} \int \frac{dq}{r^2} E∫dE∫r2kdq​Lk​∫r2dq​ E Q 2 π ϵ L 2 E \frac{Q}{2\pi\epsilon L^2} E2πϵL2Q​ Γ ( n ) ( n − 1 ) ! ∀ n ∈ N \Gamma(n) (n-1)!\quad\forall n…

JavaScript 学习笔记(WEB APIs Day4)

「写在前面」 本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. JavaScript 学习笔记&#xff08;Day1&#xff09; 2. JavaSc…

C#使用RabbitMQ-1_Docker部署并在c#中实现简单模式消息代理

介绍 RabbitMQ是一个开源的消息队列系统&#xff0c;实现了高级消息队列协议&#xff08;AMQP&#xff09;。 &#x1f340;RabbitMQ起源于金融系统&#xff0c;现在广泛应用于各种分布式系统中。它的主要功能是在应用程序之间提供异步消息传递&#xff0c;实现系统间的解耦和…

pytorch学习笔记(十一)

优化器学习 把搭建好的模型拿来训练&#xff0c;得到最优的参数。 import torch.optim import torchvision from torch import nn from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear from torch.utils.data import DataLoaderdataset torchvision.datas…

uniapp安卓android离线打包本地打包整理

离线打包准备 下载Android studio 1.准备资源hbuilder 2.准备离线SDK 最新android平台SDK下载最新android平台SDK下载 3.离线打包key申请 4.直接导入HBuilder-Integrate-AS工程,直接运行simpleDemo项目即可 5.安装java 1.8 jdk-8u151-windows-x64 6.遇到这个报错报错Caus…

在游戏里开公司!基于ERNIE SDK的多智能体游戏应用

在虚拟世界有一座神奇的办公室&#xff0c;当你输入你的创业方向&#xff0c;办公室的智慧打工人们将团结合作&#xff0c;为你的项目勤劳奔走&#xff0c;并在过程中&#xff0c;把日报周报都写好&#xff0c;让你随时掌握项目进度和最终成果&#xff01;该项目基于ERNIE SDK开…