代码之家  ›  专栏  ›  技术社区  ›  ThomasVdBerge

推送添加Docker容器时出现系统错误

  •  0
  • ThomasVdBerge  · 技术社区  · 6 年前

    我想和你一起去 puppetlabs docker module .

    我将以下代码作为测试用例添加到我的Puppetmaster中:

      docker::run { 'helloworld':
        image   => 'base',
        command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
      } 
    

    在我的Puppet客户机上,我运行的是Amazon Linux AMI。执行Puppet运行时,我收到以下错误:

    错误: /阶段[main]/base/docker::run[helloworld]/service[docker helloworld]: 提供程序系统d在此主机上不起作用

    这是有道理的,亚马逊Linux没有systemd。解决这个问题的正确方法是什么?有没有办法让docker模块在没有systemd的情况下工作?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Alex Harvey    5 年前

    它看起来不像你使用的Docker模块实际上支持AmazonLinux,如果你看一下代码的话 here .

    在Amazon Linux 1上,

    # facter osfamily 
    RedHat
    

    因此,假设所有的RedhatLinuxOS家族都使用SystemD。

    根据 this 答案是,您实际上可以在AmazonLinux上启用systemd。另一种选择是使用AmazonLinux2。

    否则,您需要在Docker模块中修补对AmazonLinux1的显式支持。这可能并不难。您可能会发现,您可以对该params.pp文件做一个微小的更改,然后向上游发送一个pr,或者如果愿意,在本地分叉它。