openeuler/splitterThe official Splitter docker image.
Maintained by: openEuler CloudNative SIG.
Where to get help: openEuler CloudNative SIG, openEuler.
Splitter is a core utility for creating openEuler's distroless images. It works by analyzing RPM packages and breaking them down into minimal, functional units called "slices," based on rules defined in the slice-releases repository. By building images from these fine-grained slices instead of whole RPMs, the final container images are significantly smaller and more secure, containing only the absolute necessary components to run an application.
Learn more about Splitter on Splitter repository.
The tag of each splitter docker image is consist of the version of splitter and the version of basic image. The details are as follows
| Tag | Currently | Architectures |
|---|---|---|
| 1.0.3-oe2403lts | Splitter 1.0.3 on openEuler 24.03-LTS | amd64, arm64 |
| 1.0.3-oe2403sp1 | Splitter 1.0.3 on openEuler 24.03-LTS-sp1 | amd64, arm64 |
| 1.0.3-oe2403sp2 | Splitter 1.0.3 on openEuler 24.03-LTS-sp2 | amd64, arm64 |
| 1.0.1-oe2403lts | Splitter 1.0.1 on openEuler 24.03-LTS | amd64, arm64 |
| 1.0.1-oe2403sp1 | Splitter 1.0.1 on openEuler 24.03-LTS-sp1 | amd64, arm64 |
| 1.0.1-oe2403sp2 | Splitter 1.0.1 on openEuler 24.03-LTS-sp2 | amd64, arm64 |
The openeuler/splitter image is designed to be used as a command-line tool. You can run splitter commands directly via docker run, mounting a host directory to retrieve the output slices.
Pull the image
First, pull the desired image tag to your local machine:
bashdocker pull openeuler/splitter:{Tag}
Generate Slices (cut command)
This is the primary way to use the image. The following example demonstrates how to use the splitter cut command to generate the python3_standard slice for openEuler 24.03-LTS (x86_64) and save it to your current directory.
Prepare an output directory on your host:
bashmkdir -p ./output
Run the splitter cut command:
bashdocker run \ -v "$(pwd)/output":/output \ --rm \ openeuler/splitter:{Tag} \ /bin/bash -c "splitter cut -r 24.03-LTS -a x86_64 -o /output python3_standard"
Explanation of the command:
-v "$(pwd)/output":/output: Mounts the ./output directory from your host into the /output directory inside the container. This is where the generated slices will be saved.--rm: Automatically removes the container after the command finishes./bin/bash -c "...": Executes the splitter cut command inside the container.-o /output: Tells splitter to place the results in the /output directory, which is mapped back to your host.After the command completes, you will find the generated slice packages in the ./output directory on your host.
Generate SDF Files (gen command)
For developers wanting to create new slicing rules, the splitter gen command can generate a SDF file for a specific RPM package.
Prepare an output directory on your host (you can reuse the same one):
bashmkdir -p ./output
Run the splitter gen command:
bashdocker run \ -v "$(pwd)/output":/output \ --rm \ openeuler/splitter:{Tag} \ /bin/bash -c "dnf install -y brotli && splitter gen -r 24.03-LTS -a x86_64 -o /output -p brotli"
Explanation:
splitter gen command requires the target package to be installed within the container to analyze its file contents. The example command handles this by running dnf install -y brotli first.-p brotli: Specifies the package for which to generate the SDF.brotli.yaml) will be saved in your host's ./output directory.Verify Installation or Get Help
You can run splitter without any arguments or with --help to see the available options:
bashdocker run --rm openeuler/splitter:{Tag} /bin/bash -c "splitter --help"
Run with an Interactive Shell
For debugging or exploration, you can also start an interactive shell inside the container:
bashdocker run -it --rm openeuler/splitter:{Tag} bash
If you have any questions or want to use some special features, please submit an issue or a pull request on openeuler-docker-images.
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务