0

我的目标是在我的 CentOS 上运行 jitsi-meet 和另一个 docker 容器。为此,我创建了一个 docker-compose.yml 文件:

version: '2'

services:

    jitsi-meet:
        image: robertoandrade/jitsi-meet
        container_name: jitsi-meet
        hostname: 192.168.5.169
        restart: always
        ports:
          - "443:443

当我使用 docker-compose up 运行它时,我收到以下错误消息:

JVB 2017-10-23 12:20:33.925 INFO: [10] org.jitsi.videobridge.octo.OctoRelay.start().106 Octo relay not configured.
JVB 2017-10-23 12:20:33.964 SEVERE: [27] org.jitsi.meet.ComponentMain.call().278 host-unknown, host:localhost, port:5347
org.xmpp.component.ComponentException: host-unknown
         at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:219)
         at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:221)
         at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:201)
         at org.jitsi.meet.ComponentMain$3.call(ComponentMain.java:270)
         at org.jitsi.meet.ComponentMain$3.call(ComponentMain.java:255)
         at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
         at java.lang.Thread.run(Thread.java:748)
 JVB 2017-10-23 12:20:34.042 INFO: [14] org.ice4j.ice.harvest.MappingCandidateHarvesters.initialize() Initialized mapping harvesters (delay=652ms).  stunDiscoveryFailed=false

当我使用docker run -it --name jitsi-meet -p 443:443 robertoandrade/jitsi-meet运行映像时,我收到主机名的输入提示,并且它完美启动。

尝试使用马特提到的“stdin_open:true”和“tty:true”。

注意:我按 PuTTY ssh 操作。

结果:

unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
c.d: policy-rc.d denied execution of stop.
ing jitsi-videobridge
-----------------------------

The jisti-videobridge package needs the DNS hostname of your instance.

我怎样才能使它与 docker-compose 一起工作?

我更喜欢没有手动输入的解决方案。

4

1 回答 1

0

看起来 docker 映像需要用户输入才能启动,这就是为什么-i-tdocker run命令中使用。

-i保持标准输入打开。 -t为进程分配一个伪 tty,因此它认为有一个控制台

和选项stdin_opentty可以在撰写文件中设置

version: '2'

services:

    jitsi-meet:
        image: robertoandrade/jitsi-meet
        container_name: jitsi-meet
        restart: always
        stdin_open: true
        tty: true
        ports:
          - "443:443

通常服务不需要输入,因此它们可以在后台运行。大多数容器镜像会设置一个环境变量或配置文件来设置主机名等配置选项。

于 2017-10-24T00:24:24.440 回答