k8s环境jenkins发布vue项目指定nodejs版本
- 1、背景
- 2、分析
- 3、解决方法
- 3.1、 找到配置镜像位置
- 3.2、 制作新镜像
- 3.3、 推送镜像到私有仓库
- 3.4、 修改配置文件
1、背景
发布一个前端项目,它需要nodejs 16.9.0版本支持,而kubesphere 3.2.0集成的jenkins 的镜像只支持nodejs v10.16.3
该项目基于的环境是k8s 1.23.4,docker 20.10.12. vue 2.7
2、分析
Jenkins Kubernetes插件
kubesphere 平台安装了jenkins ,基于Jenkins Kubernetes插件,自动化在Kubernetes中运行的Jenkins-slave代理的缩放。该插件为每个jenkins-slave代理创建Kubernetes Pod,并在每个构建后停止它。如下图
发布vue项目需要以上镜像的支持,所以要改变nodejs的版本就需要改变该镜像。
3、解决方法
3.1、 找到配置镜像位置
配置文件如下
3.2、 制作新镜像
- 拉取镜像
docker pull kubesphere/builder-nodejs:v3.2.0
- 制作Dockerfile如下
[root@momdev ~]# cat Dockerfile
FROM kubesphere/builder-nodejs:v3.2.0
RUN npm cache clean -f
RUN npm install -g n
RUN n 16.9.0
在原来的基础上升级到16.9.0
3.3、 推送镜像到私有仓库
docker push 10.10.10.131/library/builder-nodejs:v3.3.0"
3.4、 修改配置文件
ok,这样每次启动的pod就是nodejs 16.9.0版本了。