【发布时间】:2019-07-27 17:47:55
【问题描述】:
我正在运行一个 docker 容器,并将脉冲服务器环境变量传递给我的容器。容器设置为始终重启策略。如果 /tmp 文件夹中不存在 "pulseaudio.socket",则容器无法运行。
所以为了实现我的目标,我将命令"pactl load-module module-native-protocol-unix socket=/tmp/pulseaudio.socket" 添加到启动应用程序[通过搜索启动程序访问的 GUI 程序]。此命令在 /tmp 文件夹中创建一个 pulseaudio.socket 文件
如果 pulseaudio.socket 文件是在 docker 启动容器之前创建的,则此方法大部分时间都有效。如果 docker 在创建 pulseaudio.socket 之前启动容器,则容器无法启动。
为了确保在 docker 启动容器之前始终创建 pulseaudio.socket,我将代码 "pactl load-module module-native-protocol-unix socket=/tmp/pulseaudio.socket" 添加到 /etc/rc.local 并尝试将其添加到 init .d.
但是将代码添加到 /etc/rc.local 或 init.d 会在 中创建一个 pulse-PKdhtXMmr18n 文件夹/tmp 文件夹而不是文件 pulseaudio.socket
如何确保始终创建名为 pulseaudio.socket 的文件而不是 pulse-PKdhtXMmr18n?
我的主要目标是在 docker 启动之前或在 docker 尝试使用重启策略启动容器之前创建 /tmp/pulseaudio.socket 文件。
或者有什么方法可以让 docker 服务首先检查 pulseaudio.socket 文件存在,如果存在则只启动 容器?
我该怎么做?
【问题讨论】:
标签: docker ubuntu-16.04 audio-streaming pulseaudio