news 2026/7/16 10:39:55

终极指南:如何使用openeuler/splitter打造轻量级distroless镜像

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
终极指南:如何使用openeuler/splitter打造轻量级distroless镜像

终极指南:如何使用openeuler/splitter打造轻量级distroless镜像

【免费下载链接】splitterSplitting openEuler packages into multiple slices for building distroless images.项目地址: https://gitcode.com/openeuler/splitter

前往项目官网免费下载:https://ar.openeuler.org/ar/

openEuler / splitter是一款专为生成轻量级distroless镜像设计的工具,它能够将openEuler软件包分割成多个功能切片(slices),以切片为最小构建单元有效减少镜像冗余文件,降低安全风险。本文将详细介绍如何通过这款强大工具轻松构建高效精简的容器镜像。

为什么选择splitter打造distroless镜像?

传统容器镜像构建常使用RUN yum install直接打包RPM软件包,这种方式会导致镜像包含大量冗余文件,不仅增加镜像体积,还会暴露更多攻击面。而splitter通过以下创新方式解决这些问题:

  • 精细化切片:将每个RPM包分割为多个功能独立的slices,每个slice包含特定功能的文件集合
  • 智能依赖管理:将包之间的依赖关系细化为slice间的依赖,避免不必要的依赖引入
  • 自动化SDF生成:通过智能分析自动生成切片定义文件(SDF),简化镜像构建流程

快速安装splitter的两种方法

方法一:openEuler系统一键安装
# 安装依赖 dnf install python3-dnf git python3-pip cpio binutils # 克隆仓库 git clone https://gitcode.com/openeuler/splitter # 进入项目目录 cd splitter # 安装依赖包 pip3 install -r requirements.txt # 执行安装 python3 setup.py install
方法二:使用官方容器镜像(推荐)

无需本地安装依赖,直接通过脚本运行:

# 克隆仓库 git clone https://gitcode.com/openeuler/splitter # 进入项目目录 cd splitter # 直接运行命令(无需安装) ./bin/splitter-docker.sh --help

指定版本使用:

SPLITTER_VERSION=1.0.3 ./bin/splitter-docker.sh cut -r 24.03-LTS -a x86_64 -o ./output python3_standard

splitter核心工作流程解析

splitter通过清晰的工作流程将RPM包转换为可用的slices,主要包括以下步骤:

  1. RPM包下载:获取需要处理的openEuler RPM软件包
  2. 解压:提取RPM包中的文件内容
  3. 文件分类:根据文件类型和功能进行智能分类
  4. 依赖分析:分析文件间的依赖关系,构建依赖图谱
  5. 写入SDF:生成切片定义文件,为后续切割做准备

掌握splitter的两个核心命令

1. 使用cut命令生成切片

cut命令根据SDF文件将RPM包分割为多个功能切片:

本地安装方式:

splitter cut -r 24.03-LTS -a x86_64 -o /path/to/output python3_standard python3_utils

容器运行方式:

./bin/splitter-docker.sh cut -r 24.03-LTS -a x86_64 -o /path/to/output python3_standard python3_utils
2. 使用gen命令自动生成SDF文件

gen命令通过分析RPM包内容自动生成初始SDF文件,极大简化手动编写工作:

本地安装方式:

splitter gen -r 24.03-LTS -o /path/to/output -p brotli

容器运行方式:

./bin/splitter-docker.sh gen -r 24.03-LTS -o /path/to/output -p brotli

实际应用:构建轻量级Python应用镜像

以Python应用为例,使用splitter构建distroless镜像的典型步骤:

  1. 生成Python相关SDF文件
splitter gen -r 24.03-LTS -o ./sdf python3 python3-pip
  1. 根据SDF切割出所需切片
splitter cut -r 24.03-LTS -a x86_64 -o ./slices -s ./sdf python3_standard
  1. 通过EulerPublisher构建最终镜像使用生成的切片作为输入,通过EulerPublisher构建最小化的Python运行环境镜像。

总结:打造安全高效的容器镜像

通过openeuler/splitter,开发者可以轻松实现:

  • ✅ 减少镜像体积达40%以上
  • ✅ 降低安全攻击面
  • ✅ 加速镜像构建和部署流程
  • ✅ 简化复杂应用的依赖管理

无论是云原生应用部署还是边缘计算场景,splitter都能帮助你构建更轻量、更安全、更高效的容器镜像。立即尝试这款强大工具,体验distroless镜像带来的优势!

【免费下载链接】splitterSplitting openEuler packages into multiple slices for building distroless images.项目地址: https://gitcode.com/openeuler/splitter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 10:39:50

Kimi K2.5多模态与并行智能体技术解析

1. Kimi K2.5技术架构深度解析月之暗面最新发布的Kimi K2.5版本带来了两项突破性升级:原生多模态支持和并行智能体机制。作为长期跟踪AI技术演进的专业从业者,我将从工程实现角度拆解这些技术创新的实际价值。1.1 原生多模态的技术实现多模态能力在K2.5中…

作者头像 李华
网站建设 2026/7/16 10:39:42

LabVIEW Actor Framework构建多通道数据采集系统

1. 项目背景与需求分析作为一名长期使用LabVIEW进行自动化测试系统开发的工程师,我最近在工业现场遇到一个典型需求:需要构建一个能够724小时连续运行的多通道数据采集系统,同时要求具备实时数据记录和异常报警功能。这个"荣小菜补钙记第…

作者头像 李华
网站建设 2026/7/16 10:38:56

AI内容标记:技术社区的内容质量与信任挑战

最近在技术社区 Hacker News 上,一个看似简单但极具争议的话题引发了激烈讨论:是否应该为 AI 生成的文章添加标记功能。这个话题之所以重要,是因为它触及了当前技术内容生态的核心矛盾——当 AI 生成内容以指数级速度增长时,我们如…

作者头像 李华
网站建设 2026/7/16 10:37:26

Agent 上线即崩盘?权限隔离与可观测性才是区分 Demo 与生产的生死线

《Agent到底能不能干活?别只看 Demo 和跑分》看起来是个大话题,但真落到项目里,常常就是几个具体选择。下面我尽量按实际开发时会遇到的问题来讲。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做…

作者头像 李华
网站建设 2026/7/16 10:36:27

QMCDecode深度解析:QQ音乐加密格式转换的技术实现与macOS应用方案

QMCDecode深度解析:QQ音乐加密格式转换的技术实现与macOS应用方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&#…

作者头像 李华