轮胎添加Docker容器时出现SystemD错误

时间:2019-01-04 06:47:25

标签: docker puppet

我和puppetlabs docker module在一起。

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

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

在我的up客户端上,我正在运行Amazon Linux AMI。运行木偶时,我收到以下错误:

  

错误:   / Stage [main] / Base / Docker :: Run [helloworld] / Service [docker-helloworld]:   提供程序systemd在此主机上不起作用

有意义的是,Amazon Linux没有Systemd。解决此问题的正确方法是什么?有没有一种方法可以使docker模块在没有systemd的情况下工作?

1 个答案:

答案 0 :(得分:1)

如果您看一下代码here,看起来您正在使用的Docker模块实际上并不支持Amazon Linux。

在Amazon Linux 1上,

# facter osfamily 
RedHat

因此,假设所有Redhat linux OS系列都使用Systemd。

根据this的答案,您实际上可以在Amazon Linux上启用Systemd。另一个选择是使用Amazon Linux 2。

否则,您需要在Docker模块中修补对Amazon Linux 1的显式支持。这可能并不难。您可能会发现可以对该params.pp文件进行较小的更改并向上游发送PR,也可以根据需要在本地进行分叉。