2017-03-20 4 views
2

カスタムDバスバスを内部で実行して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

答えて

0

"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 
1

起動スクリプトを使用する必要があります。 「実行」コマンドは、コンテナが作成されてから停止したときにのみ実行されます。

関連する問題