在Docker容器中运行dbus-daemon

在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问题或泊坞窗问题。

+0

你能找到一个解决方案? – Shanky

不应使用“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 

您应该使用启动脚本。 “运行”命令仅在容器被创建然后停止时执行。