restcomm phusion baseimage runsv无法启动./run:文件不存在

我正在遵循“ Restcomm Docker快速入门指南” 。 我试图在我安装了docker的“大型”VM(8GB mem和4vCPU)上启动restcomm连接。 我支持一个公司的http代理,因此运行“docker-compose up”是不够的。 我创build了自己的restcomm / restcomm docker镜像:我克隆了Restcomm-Docker git项目,并做了一些更改:

我在Dockerfile和scripts / {restcomm_autoconf.sh,restcomm_sslconf.sh}中添加了http_proxy和https_proxy ENV指令,这样所有的wgets都可以工作。

我在RCBCONF_STATIC_ADDRESS中的Restcomm-Connect / docker-compose.yml中configuration了虚拟机IP地址。

当我构build“自定义”泊坞窗图像时,apt-get install步骤中有一些错误消息:

docker build -t restcomm/restcomm:latest -f Dockerfile . ... Setting up x11-common (1:7.7+13ubuntu3) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults insserv: can not remove(../rc0.d/K01hwclock.sh): No such file or directory insserv: can not remove(../rc0.d/K01sendsigs): No such file or directory ... 

所以我检查了你依赖的原始docker图像(phusion / baseimage),发现了那些奇怪的文件:

 run -it phusion/baseimage bash root@3485dcc8fe85:/# ls -l /etc/rc0.d/ ls: cannot access '/etc/rc0.d/K01hwclock.sh': No such file or directory ls: cannot access '/etc/rc0.d/K01sendsigs': No such file or directory ls: cannot access '/etc/rc0.d/K02umountnfs.sh': No such file or directory ls: cannot access '/etc/rc0.d/K03umountfs': No such file or directory ls: cannot access '/etc/rc0.d/K04umountroot': No such file or directory ls: cannot access '/etc/rc0.d/K05halt': No such file or directory total 4 ??????????? ? ? ? ? ? K01hwclock.sh ??????????? ? ? ? ? ? K01sendsigs lrwxrwxrwx. 1 root root 19 May 17 2017 K01syslog-ng -> ../init.d/syslog-ng lrwxrwxrwx. 1 root root 17 May 10 2017 K01urandom -> ../init.d/urandom lrwxrwxrwx. 1 root root 20 May 17 2017 K02hwclock.sh -> ../init.d/hwclock.sh lrwxrwxrwx. 1 root root 18 May 17 2017 K02sendsigs -> ../init.d/sendsigs ??????????? ? ? ? ? ? K02umountnfs.sh ??????????? ? ? ? ? ? K03umountfs lrwxrwxrwx. 1 root root 22 May 17 2017 K03umountnfs.sh -> ../init.d/umountnfs.sh lrwxrwxrwx. 1 root root 18 May 17 2017 K04umountfs -> ../init.d/umountfs ??????????? ? ? ? ? ? K04umountroot ??????????? ? ? ? ? ? K05halt lrwxrwxrwx. 1 root root 20 May 17 2017 K05umountroot -> ../init.d/umountroot lrwxrwxrwx. 1 root root 14 May 17 2017 K06halt -> ../init.d/halt -rw-r--r--. 1 root root 353 Jan 19 2016 README root@3485dcc8fe85:/# 

对不起,这可能是一个非常普遍的问题,但在google上没有发现任何明显的问题。

然后,当我运行docker-compose,我有以下错误信息:

 restcomm_1 | *** Running /etc/my_init.d/restcomm6.sh... restcomm_1 | mv: cannot remove '/etc/service/cron/run': No such file or directory restcomm_1 | mv: cannot remove '/etc/service/sshd/down': No such file or directory restcomm_1 | mv: cannot remove '/etc/service/sshd/run': No such file or directory restcomm_1 | mv: cannot remove '/etc/service/syslog-forwarder/run': No such file or directory restcomm_1 | mv: cannot remove '/etc/service/syslog-ng/run': No such file or directory 

然后在循环中出现以下错误消息:

 restcomm_1 | *** Running /etc/rc.local... restcomm_1 | *** Booting runit daemon... restcomm_1 | *** Runit started as PID 281 restcomm_1 | runsv syslog-ng: fatal: unable to start ./run: file does not exist restcomm_1 | runsv syslog-forwarder: fatal: unable to start ./run: file does not exist restcomm_1 | runsv cron: fatal: unable to start ./run: file does not exist restcomm_1 | runsv sshd: fatal: unable to start ./run: file does not exist 

我认为这与我在build造docker图像时遇到的问题有关,但我不能100%确定。

我在Docker镜像中find了Restcomm-Docker / scripts / restcomm-runlevels.sh中的以下行:/etc/my_init.d/restcomm6.sh:

 cp -pR /etc/service/* /etc/runit/runsvdir/current/ 

这可能是以前的错误信息的来源。 它应该只添加正确的脚本?

编辑1:我在Restcomm-Docker / scripts / restcomm-runlevels.sh中注释掉了以下代码块:

 #cd /etc/runit/runsvdir #ln -s default /etc/runit/runsvdir/current #cp -pR /etc/service/* /etc/runit/runsvdir/current/ #mv -f /etc/service /service.old && ln -s /etc/runit/runsvdir/current /etc/service 

现在restcomm服务启动了,但我有感觉多次启动(可能是由于我的更改导致的不适当的runit监视?):我可以在不同的线程中看到以下行和后续的日志块两次:

 Initializing RVD. Project version: 1.13 

然后结束一个具有约束力的exception:

 restcomm_1 | 21:05:18,291 ERROR [org.mobicents.protocols.mgcp.stack.JainMgcpStackImpl] (RestComm-akka.actor.default-dispatcher-2) java.net.BindException: Address already in use restcomm_1 | 21:05:18,293 ERROR [org.restcomm.connect.mrb.MediaResourceBrokerGeneric] (RestComm-akka.actor.default-dispatcher-4) Failed to find a local port 2727 to bound stack: java.lang.RuntimeException: Failed to find a local port 2727 to bound stack restcomm_1 | at org.mobicents.protocols.mgcp.stack.JainMgcpStackImpl.init(JainMgcpStackImpl.java:172) [mgcp-driver-6.0.23.jar:6.0.23] restcomm_1 | at org.mobicents.protocols.mgcp.stack.JainMgcpStackImpl.createProvider(JainMgcpStackImpl.java:250) [mgcp-driver-6.0.23.jar:6.0.23] restcomm_1 | at org.restcomm.connect.mrb.MediaResourceBrokerGeneric.bindMGCPStack(MediaResourceBrokerGeneric.java:134) [restcomm-connect.mrb-8.3.0-140.jar:8.3.0-140] restcomm_1 | at org.restcomm.connect.mrb.MediaResourceBrokerGeneric.onStartMediaResourceBroker(MediaResourceBrokerGeneric.java:120) [restcomm-connect.mrb-8.3.0-140.jar:8.3.0-140] restcomm_1 | at org.restcomm.connect.mrb.MediaResourceBrokerGeneric.onReceive(MediaResourceBrokerGeneric.java:99) [restcomm-connect.mrb-8.3.0-140.jar:8.3.0-140] restcomm_1 | at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:159) [akka-actor_2.10-2.1.2.jar:] restcomm_1 | at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) [akka-actor_2.10-2.1.2.jar:] restcomm_1 | at akka.actor.ActorCell.invoke(ActorCell.scala:386) [akka-actor_2.10-2.1.2.jar:] restcomm_1 | at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) [akka-actor_2.10-2.1.2.jar:] restcomm_1 | at akka.dispatch.Mailbox.run(Mailbox.scala:212) [akka-actor_2.10-2.1.2.jar:] restcomm_1 | at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506) [akka-actor_2.10-2.1.2.jar:] restcomm_1 | at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262) [scala-library-2.10.1.jar:] restcomm_1 | at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975) [scala-library-2.10.1.jar:] restcomm_1 | at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478) [scala-library-2.10.1.jar:] restcomm_1 | at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) [scala-library-2.10.1.jar:]