initctl太老了新贵检查

loc*_*nna 12 upstart docker ubuntu-14.04

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

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

mgo*_*gor 9

我刚遇到同样的问题.

看着容器:

root@puppet-master:/# cat /sbin/initctl
#!/bin/sh
exit 0
Run Code Online (Sandbox Code Playgroud)

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

# Fix upstart
RUN rm -rf /sbin/initctl && ln -s /sbin/initctl.distrib /sbin/initctl
Run Code Online (Sandbox Code Playgroud)

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

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

再挖掘一下,我找到了一个包含upstart工作版本的Ubuntu官方图片:https: //registry.hub.docker.com/_/ubuntu-upstart/