Docker for Macのコンテナ上で音楽を再生する

Docker for Macのコンテナ上で音楽を再生する

通常、コンテナ上で音を鳴らしてもMacで再生することはできませんが、Pulseaudioを使用することで音をコンテナ上で鳴らした音をMacで再生することができます。

Pulseaudio

PulseAudioはバックグラウンドで動作するサウンドサーバであり、音声データをサウンドカードや他のPulseAudioサーバーなどに送信する事ができますアプリケーションです。

設定手順

1. Pulseaudioのインストール

$ brew install pulseaudio

2. Pulseaudioを起動

$ pulseaudio --load=module-native-protocol-tcp --exit-idle-time=-1 --daemon

動作確認

$ pulseaudio --check -v

3. Dockerfileに以下を追記

RUN apt-get install -y pulseaudio

4. docker-compose.yml

version: "3.3"
services:
  service_name:
    build: .
    environment:
      - PULSE_SERVER=docker.for.mac.localhost
    volumes:
      - ~/.config/pulse:/root/.config/pulse

終わりに

機械学習の学習がいつ終わったのか分かりづらかったので、学習終了時に音を出して通知するようにしました。Pythonで音を鳴らすのは結構楽しかったです。