统信uos上构建oci镜像需先安装buildah,推荐通过uos-package-manager(apt)安装;也可用应用商店gui、离线deb包或源码编译(需selinux时);最后可用dockerfile构建镜像。

如果您在统信UOS系统上需要构建符合OCI标准的容器镜像,但尚未安装Buildah工具,则需先完成适配统信UOS的安装与配置。以下是针对统信UOS平台的多种可行安装及镜像构建方法:
一、通过uos-package-manager安装Buildah(推荐)
统信UOS基于Debian/Ubuntu体系,其官方软件源已收录Buildah包,安装过程无需手动编译,兼容性高且更新及时。该方式适用于大多数统信UOS桌面版与服务器版用户。
1、打开终端,执行更新命令以同步软件源列表:
sudo apt update
2、安装Buildah及其依赖工具:
sudo apt install -y buildah podman skopeo
3、验证安装结果:
buildah --version
4、确认输出中包含类似buildah version 1.35.0字样,表示安装成功。
二、从统信UOS应用商店GUI安装(图形界面用户适用)
对于不熟悉命令行操作的桌面版用户,可通过统信UOS自带的应用商店完成图形化安装。该方式自动处理依赖关系,避免权限与路径配置错误。
1、点击左下角“开始菜单”,搜索并打开“应用商店”
2、在搜索框中输入Buildah或容器构建
3、在结果中找到“Buildah 容器镜像构建工具”,点击“安装”按钮
4、等待安装进度条完成,关闭窗口后在终端中运行buildah info验证环境就绪
三、使用deb包离线安装(适用于无网络环境)
当目标统信UOS系统处于隔离网络或受限网络时,可预先下载适配uos20/22的Buildah .deb安装包,通过本地文件完成部署。此方法绕过APT源依赖,适合信创交付场景。
1、在联网机器上访问统信UOS开源镜像站:
https://mirrors.uniontech.com/
2、导航至pool/main/b/buildah/目录,下载对应架构的最新deb包(如buildah_1.35.0~uos22_amd64.deb)
3、将deb包拷贝至目标UOS设备,执行安装:
sudo dpkg -i buildah_1.35.0~uos22_amd64.deb
4、修复可能缺失的依赖:
sudo apt --fix-broken install -y
四、从源码编译安装(适用于需启用SELinux或自定义特性)
当需要启用Buildah对统信UOS深度安全模块(如DDE-Security、UOS-SELinux策略)的支持时,必须从源码编译,并指定--enable-selinux参数。该方式生成的二进制文件具备完整权限控制能力。
1、安装编译依赖:
sudo apt install -y golang-go git btrfs-progs libbtrfs-dev libglib2.0-dev libgpgme-dev libseccomp-dev libdevmapper-dev
2、克隆Buildah官方镜像仓库:
git clone https://gitcode.com/gh_mirrors/bui/buildah && cd buildah
3、设置Go模块代理并编译:
export GOPROXY=https://goproxy.cn,direct
make binary
4、安装至系统路径:
sudo make install
5、检查SELinux支持状态:
buildah info | grep selinux
6、确认输出中"selinux_enabled": true
五、构建首个OCI镜像(基于Dockerfile)
Buildah在统信UOS上完全兼容Dockerfile语法,可直接复用现有构建脚本。该方法适合已有容器化项目快速迁移至UOS平台。
1、创建测试目录并进入:
mkdir ~/oci-demo && cd ~/oci-demo
2、新建Dockerfile文件:
cat > Dockerfile FROM debian:slim
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
CMD ["curl", "--version"]
EOF
3、执行Buildah构建命令:
buildah bud -t uos-curl-demo .
4、列出本地镜像确认生成:
buildah images | grep uos-curl-demo
5、运行验证镜像功能:
buildah from uos-curl-demo && buildah run uos-curl-demo-working-container -- curl --version










