在Docker容器中运行dbus-daemon
我正在尝试创build一个Docker容器,里面运行着一个自定义的D-Bus总线。
我configuration我的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
build立后,套接字被创build,但它被标记为“文件”,而不是“套接字” ,我不能用它作为总线…
-rwxrwxrwx 1 root root 0 Mar 20 07:25 myCustomDbus.sock
如果我删除这个文件并在terminal中再次运行dbus-daemon
命令,那么成功创build套接字:
srwxrwxrwx 1 root root 0 Mar 20 07:35 myCustomDbus.sock
我不确定这是D-Bus问题还是docker问题。
你应该使用启动脚本。 只有当容器被创build然后停止时,“运行”命令才被执行。
不要使用“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