Estoy tratando de crear un contenedor Docker con un bus D-Bus personalizado ejecutándose dentro.
Configuré mi Dockerfile de la siguiente manera:
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.confDespués de construir, se crea el zócalo, pero está marcado como "archivo", no como "zócalo" , y no puedo usarlo como bus...
-rwxrwxrwx 1 root root 0 Mar 20 07:25 myCustomDbus.sock Si elimino este archivo y ejecuto el comando dbus-daemon nuevamente en una terminal, el socket se crea con éxito:
srwxrwxrwx 1 root root 0 Mar 20 07:35 myCustomDbus.sockNo estoy seguro de si es un problema de D-Bus o de Docker.
En lugar de usar el comando "EJECUTAR", debe usar el "PUNTO DE ENTRADA" para ejecutar un script de inicio.
El Dockerfile debería verse así:
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"]Y ejecutar.sh:
#!/bin/bash dbus-daemon --config-file=/etc/dbus-1/myCustomDbus.conf --print-addressDebe utilizar un script de inicio. El comando "ejecutar" se ejecuta solo cuando se crea el contenedor y luego se detiene.
mi carrera.sh:
if ! pgrep -x "dbus-daemon" > /dev/null then # export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --config-file=/usr/share/dbus-1/system.conf --print-address | cut -d, -f1) # or: dbus-daemon --config-file=/usr/share/dbus-1/system.conf # and put in Dockerfile: # ENV DBUS_SESSION_BUS_ADDRESS="unix:path=/var/run/dbus/system_bus_socket" else echo "dbus-daemon already running" fi if ! pgrep -x "/usr/lib/upower/upowerd" > /dev/null then /usr/lib/upower/upowerd & else echo "upowerd already running" fientonces Chrome se ejecuta con
--use-gl=swiftshader
sin errores