Docker作为构建器,无法安装systemd头文件

ian*_*aré 3 build systemd docker

我正在尝试根据官方的CentOS7图像更新Docker镜像.它用作Node.js项目的构建器.

我需要添加systemd-devel用于编译某些依赖项的包,但是这会失败并出现以下错误:

fakesystemd-1-17.el7.centos.noarch has installed conflicts systemd: fakesystemd-1-17.el7.centos.noarch

谢谢

hel*_*ert 7

fakesystemd是CentOS Docker映像中的一个特殊包,它满足了对Systemd的依赖,而没有实际安装Systemd(毕竟,你通常不需要容器中的init系统).yum info fakesystemd告诉我们更多:

最小的docker特定包,以满足systemd Provides:而无需在Docker镜像中安装systemd.它主要用于Docker镜像/容器.它不提供systemd包的任何功能 - 它只包含很少的重要目录和文件.fakesystemd绝对不适用于完全可启动的操作系统!

要在映像中安装real systemd,您需要以这种形式运行yum swap命令:

yum swap -- remove fakesystemd -- install systemd systemd-libs
Run Code Online (Sandbox Code Playgroud)

您需要fakesystemd使用"真实" systemd包交换包,然后还可以安装systemd-devel:

RUN yum swap -y fakesystemd systemd && \
    yum install -y systemd-devel
Run Code Online (Sandbox Code Playgroud)