jenkins 发布镜像清理

概述

我们在使用jenkins执行build命令时,偶尔会产生一些版本为none的镜像,但是这些镜像是完全没有用的,占用了磁盘空间,需要定期清理。

脚本清理

编辑脚本clean_docker_image.sh

#!/bin/bash
# docker删除none镜像
docker rmi $(docker images -f "dangling=true" -q)

增加定时任务,每天凌晨执行

# docker删除none镜像
0 0 * * * root bash /data/daily_scripts/clean_docker_image.sh

另外在执行jenkins job时,pipline脚本里面需要增加,执行docker push xxx之后,就执行docker rmi xxx,删除本地镜像。

本地镜像也会占用磁盘空间

<think>好的,用户想知道如何通过Dockerfile创建Jenkins镜像。首先,我需要回忆一下Docker的基本知识,尤其是Dockerfile的编写步骤。记得Dockerfile是用来定义镜像构建过程的,所以用户需要从基础镜像开始,安装必要的软件,然后配置环境。 首先,我应该确定Jenkins的官方镜像或者适合的基础镜像。但用户可能想自己从头构建,比如使用CentOS或者Ubuntu作为基础。看引用中提到使用centos:7作为基础镜像,并且配置了阿里云的镜像源,这样可以加快安装速度。这可能是一个常见的做法,尤其是在国内环境下。 接下来,安装Java,因为Jenkins是基于Java的。用户需要安装JDK,可能需要通过yum来安装。然后,下载Jenkins的war包。记得Jenkins的官方下载链接,可能需要替换版本号。或者使用wget从官方源获取,但要注意版本兼容性。 然后,编写Dockerfile的步骤大概包括:FROM指定基础镜像,RUN安装依赖,COPY或者ADD添加文件,EXPOSE暴露端口,CMD设置启动命令。引用中的例子使用了docker build命令构建镜像,所以需要确保Dockerfile中的步骤正确。 还要考虑权限问题,比如创建Jenkins用户,或者处理文件权限。另外,用户可能需要配置环境变量,比如JENKINS_HOME,或者设置时区。引用中提到了添加阿里云的Docker镜像源和yum源,这有助于解决国内下载慢的问题,所以应该在Dockerfile中配置这些镜像源。 可能还需要安装一些插件或者预先配置Jenkins,但用户可能只是需要一个基础的镜像,所以这部分可能在后续的步骤中处理。需要确保Dockerfile中的每一步都正确,比如更新yum缓存,安装必要的工具如wget,清理临时文件以减少镜像大小。 然后,用户需要构建镜像,使用docker build命令,指定标签和上下文路径。可能还需要处理构建过程中出现的错误,比如网络问题,依赖缺失等。在Dockerfile中,正确的顺序很重要,比如先更新镜像源,再安装软件,避免缓存问题。 最后,验证镜像是否正确,运行容器,检查Jenkins是否正常启动。可能需要暴露8080端口,或者映射数据卷持久化数据,但用户的问题主要是构建镜像,所以这些步骤可能属于后续操作。 总结下来,步骤应该是:创建Dockerfile,配置基础镜像镜像源,安装依赖,下载Jenkins,设置启动命令,构建镜像。需要参考用户提供的引用中的命令,比如docker build -t my-jenkins-image:1.0 .,确保命令正确。同时,检查是否需要额外的配置,比如时区、用户权限等。 可能还需要注意Dockerfile的语法,比如使用反斜杠换行,合理使用层数减少镜像大小。另外,考虑是否使用多阶段构建,但用户的需求可能比较简单,所以单阶段即可。 最后,生成相关问题,可能涉及优化镜像大小、配置持久化存储、添加插件等。需要根据常见的使用场景来提问,比如性能优化、错误排查等。</think>### 通过 Dockerfile 构建 Jenkins 自定义镜像教程 以下是使用 Dockerfile 构建 Jenkins 镜像的详细步骤: --- #### 1. **准备 Dockerfile 文件** 新建一个目录并创建 `Dockerfile` 文件: ```bash mkdir jenkins-docker && cd jenkins-docker touch Dockerfile ``` --- #### 2. **编写 Dockerfile 内容** ```dockerfile # 使用 CentOS 7 作为基础镜像,并配置阿里云镜像源加速安装[^2][^4] FROM centos:7 # 设置环境变量 ENV JENKINS_HOME=/var/jenkins_home \ JENKINS_VERSION=2.414.3 # 安装依赖工具和 Jenkins 所需环境 RUN yum install -y wget curl git java-11-openjdk-devel && \ yum clean all && \ rm -rf /var/cache/yum # 配置阿里云镜像源(可选,加速后续下载) RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \ sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/CentOS-Base.repo # 下载 Jenkins WAR 包 RUN wget https://get.jenkins.io/war-stable/${JENKINS_VERSION}/jenkins.war -P /usr/share/jenkins/ # 暴露 Jenkins 默认端口 EXPOSE 8080 # 启动 Jenkins CMD ["java", "-jar", "/usr/share/jenkins/jenkins.war"] ``` --- #### 3. **构建镜像** 在 `Dockerfile` 所在目录执行以下命令: ```bash docker build -t my-jenkins:1.0 . # 标签名可自定义[^1][^2] ``` --- #### 4. **验证镜像** 查看构建成功的镜像: ```bash docker images | grep my-jenkins ``` --- #### 5. **运行 Jenkins 容器** 启动容器并映射端口: ```bash docker run -d -p 8080:8080 --name jenkins-container my-jenkins:1.0 ``` 访问 `http://localhost:8080` 即可进入 Jenkins 初始化页面。 --- ### 关键配置说明 - **基础镜像选择**:使用轻量级镜像(如 `alpine`)可进一步优化体积,但需调整包管理命令。 - **持久化存储**:建议挂载卷以保存 Jenkins 数据: ```bash docker run -d -v /path/on/host:/var/jenkins_home -p 8080:8080 my-jenkins:1.0 ``` - **插件预装**:可在 Dockerfile 中添加脚本自动安装常用插件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值