10.21. 容器
UBI 镜像无法可重复生成
在使用以下参数调用同一组输入时,podman build 和 buildah build 命令避免在构建之间出现不一致的情况:
-
--rewrite-timestamp -
--source-date-epoch,这是您在启动构建时设置的等效构建参数或环境值。
要临时解决这个问题,使用-- rewrite-timestamp 和-- 参数调用 source-date- epochpodman build 或 buildah build 命令,以最小化构建不一致的情况。此外,在 RUN 指令中调用的更新工具,以避免在 $SOURCE_DATE_EPOCH 环境变量设置时产生非确定输出。
有些工具或工具版本可能仍然会产生非确定的输出,您可能无法重复构建特定的镜像。
在较旧的容器镜像中运行 systemd 无法正常工作
在较旧的容器镜像(如 centos:7)中运行 systemd 将无法正常工作:
podman run --rm -ti centos:7 /usr/lib/systemd/systemd
$ podman run --rm -ti centos:7 /usr/lib/systemd/systemd
Storing signatures
Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
[!!!!!!] Failed to mount API filesystems, freezing.
临时解决方案 :使用以下命令:
mkdir /sys/fs/cgroup/systemd mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd
# mkdir /sys/fs/cgroup/systemd
# mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd
# podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd
Jira:RHELPLAN-96940[1]
FIPS bootc 镜像创建在启用了 FIPS 的主机上失败
由于 update-crypto-policies 软件包,使用启用了 FIPS 模式的 Podman 构建磁盘镜像失败,退出码为 3 :
Enable the FIPS crypto policy crypto-policies-scripts is not installed by default in RHEL-10
# Enable the FIPS crypto policy
# crypto-policies-scripts is not installed by default in RHEL-10
RUN dnf install -y crypto-policies-scripts && update-crypto-policies --no-reload --set FIPS
临时解决方案:构建具有禁用了 FIPS 模式的 bootc 镜像。