initctl太老了新贵检查

时间:2015-02-19 00:44:21

标签: docker ubuntu-14.04 upstart

我正在尝试使用init-checkconf对upstart脚本进行语法检查。但是,当我运行它时,它会返回ERROR: version of /sbin/initctl too old

我不知道该怎么做,我尝试重新安装新手,但没有任何改变。这是在一个docker容器(ubuntu:14.04)中运行的,这可能与它有关。

1 个答案:

答案 0 :(得分:9)

我刚遇到同样的问题。

查看容器:

root@puppet-master:/# cat /sbin/initctl
#!/bin/sh
exit 0

我还没有完全测试它,但我在Dockerfile中添加了以下内容:

# Fix upstart
RUN rm -rf /sbin/initctl && ln -s /sbin/initctl.distrib /sbin/initctl

我认为this链接解释得非常好:

  

当您的Docker容器启动时,仅运行CMD命令。将在容器内运行的唯一进程是CMD命令,以及它产生的所有进程。这就是为什么各种重要的系统服务都不会自动运行的原因 - 你必须自己运行它们。

挖掘更多内容,我发现了一个包含upstart工作版本的官方Ubuntu映像: https://registry.hub.docker.com/_/ubuntu-upstart/