2017-03-20 3 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

시작 스크립트를 사용해야합니다. "실행"명령은 컨테이너를 작성한 다음 중지 한 경우에만 실행됩니다.

관련 문제