✨✨✨✨✨✨
- 🎀前言
- 🎁基于内置镜像构建
- 🎁把镜像添加基础容器中
- 🎁检查容器是否配置成功
- 🎁不生效的原因排查
- 🎁按步骤执行如下命令
🎀前言
- 由于我本地的开发环境node是16.18.1,而自带容器node的版本是9.11.2
- 内置支持容器
🎁基于内置镜像构建
- 基于原有镜像构建,需要用原有镜像的环境
FROM kubesphere/builder-nodejs:v3.2.0
RUN npm cache clean -f
RUN npm install -g n
RUN n 16.18.1
- 添加dockerfile
#然后把刚才的脚本复制进去
vim Dockerfile
- 打包镜像
# -t为指定构建镜像的名字和版本,格式为'name:tag',-f为指定其他目录下的DockerFIle文件。
#我们看到最后还有一个 . 是为了让 Docker 到当前本地目录去寻找 Dockerfile 文件。
docker build -t [自定义镜像名]:latest -f Dockerfile .
- 推送到私有仓库, 因为我这里用的阿里云镜像仓库
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
- 按照查看配置文件是否生效,
自己改动的配置
是否已经在里面了,如果已经存在里面还是未生效兼容重启容器