在Docker容器中运行dbus-daemon
问题描述:
我正在尝试使用内部运行的自定义D-Bus总线创建Docker容器。在Docker容器中运行dbus-daemon
我配置我的Dockerfile如下:
FROM ubuntu:16.04
COPY myCustomDbus.conf /etc/dbus-1/
RUN apt-get update && apt-get install -y dbus
RUN dbus-daemon --config-file=/etc/dbus-1/myCustomDbus.conf
建设,创建插座,但它被标记as "file", not as "socket",我不能用它作为公交车经过...
-rwxrwxrwx 1 root root 0 Mar 20 07:25 myCustomDbus.sock
如果我删除此文件并在终端中再次运行dbus-daemon
命令,则该套接字已成功创建:
srwxrwxrwx 1 root root 0 Mar 20 07:35 myCustomDbus.sock
我不确定它是否是D-Bus问题或泊坞窗问题。
答
不应使用“RUN”命令,而应使用“ENTRYPOINT”命令来运行启动脚本。
的Dockerfile应该看起来像:
FROM ubuntu:14.04
COPY myCustomDbus.conf /etc/dbus-1/
COPY run.sh /etc/init/
RUN apt-get update && apt-get install -y dbus
ENTRYPOINT ["/etc/init/run.sh"]
而且run.sh:
#!/bin/bash
dbus-daemon --config-file=/etc/dbus-1/myCustomDbus.conf --print-address
答
您应该使用启动脚本。 “运行”命令仅在容器被创建然后停止时执行。
你能找到一个解决方案? – Shanky