pipewire via docker2022年05月11日 06:05

頭出し

遊びの為にwineを使っています。環境を汚したくないので、 dockerで環境構築をしています。

変更前

環境

  • Ubuntu 20.04(ホスト、コンテナ共)
  • Gnome(ホスト、コンテナ共)
  • PulseAudio(ホスト、コンテナ共)

実行方法

コンテナの音を、ホストで受け取る為、以下を行っていました。

  1. pacmd にて、socketファイル(pulse.socket)を作成
  2. 以下をオプション指定し、docker run
    1. 環境変数(-e) PULSE_SERVER=unix:/tmp/pulse.socket
    2. 環境変数(-e) PULSE_COOKIE=/tmp/pulse/cookie
    3. ボリューム(-v) socketファイルを /tmp/pulse.socket に指定
  3. docker run 後(wine終了後)に、socketファイルを削除(rm)

変更後

環境

ホストOSが代わり、それに伴いpipewireにサウンド環境が変わりました。

  • Pop!_OS 22.04(ホスト)
  • Ubuntu 22.04(コンテナ)
  • Gnome(ホスト、コンテナ共)
  • Pipewire(ホスト)
  • PulseAudio(コンテナ)

実行方法

pipewire用に docker run実行時の処理を書き換えました。

  1. pactl load-module module-native-protocol-tcp
  2. 以下をオプション指定し、docker run
    1. 環境変数(-e)に、PULSE_SERVER=ホストのIPアドレス
  3. docker run 後(wine終了後)に、unload-module