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

✨✨✨✨✨✨

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

前言


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

kubeSphere DevOps自定义容器 指定nodejs版本_第1张图片

基于内置镜像构建


  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: "这个就是刚才阿里云镜像仓库的地址" # 我这个是私有仓库,建议自行构建镜像

kubeSphere DevOps自定义容器 指定nodejs版本_第2张图片

检查容器是否配置成功


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

不生效的原因排查


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

按步骤执行如下命令


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

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

你可能感兴趣的:(docker,k8s,日常问题记录,devops,运维)