#node.js #docker #pulseaudio
#node.js #docker #pulseaudio
Вопрос:
Я пытаюсь запустить сервер NodeJS с pulseaudio внутри Docker для записи экрана в браузере pupeteer. Я оставил дополнительные биты выключенными и просто включил минимальный пример, чтобы добраться до того места, где я застрял. Попытка запуска pulseaudio --system
выдает Failed to open cookie file
. Как мне создать этот файл заранее или заставить его создавать его на лету.
Dockerfile
FROM node:14
RUN apt-get update amp;amp; apt-get install -y pulseaudio
RUN apt-get update amp;amp; apt-get install -y pulseaudio-module-zeroconf
RUN apt-get update amp;amp; apt-get install -y dbus-x11
RUN echo "load-module module-native-protocol-tcp auth-anonymous=1" >> /etc/pulse/default.pa
RUN echo "load-module module-zeroconf-publish" >> /etc/pulse/default.pa
COPY . .
CMD bash start_node.sh
start_node.sh
#!/bin/bash
service dbus restart
export $(dbus-launch)
pulseaudio --system
Команды для запуска
docker build -t pulseaudio .
docker run -it --rm pulseaudio
Вывод
[ ok ] Stopping system message bus: dbus.
[ ok ] Starting system message bus: dbus.
W: [pulseaudio] main.c: Running in system mode, but --disallow-exit not set.
W: [pulseaudio] main.c: Running in system mode, but --disallow-module-loading not set.
N: [pulseaudio] main.c: Running in system mode, forcibly disabling SHM mode.
N: [pulseaudio] main.c: Running in system mode, forcibly disabling exit idle time.
W: [pulseaudio] main.c: OK, so you are running PA in system mode. Please make sure that you actually do want to do that.W: [pulseaudio] main.c: Please read http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/WhatIsWrongWithSystemWide/ for an explanation why system mode is usually a bad idea.
W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authentication key '/var/run/pulse/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.pulse-cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authentication key '/var/run/pulse/.pulse-cookie': No such file or directory
Ответ №1:
Если вы используете пользователя с правами root, чтобы заставить его работать, вам необходимо запустить демон PulseAudio.
Измените строку на pulseaudio -D --system